Can someone help me understand smart group caching so I can prevent these deadlocks?

I cant answer everything but I think I can help clarify a few things;

  How can there be a difference between when the cache is flushed and when it is built, anyway? Surely refilling the cache means first you flush it, then you fill it. They cannot be separate

The answer to this lies in the state of the cache, there are in fact two states;

Current - does not need clearing or rebuilding
Invalid - this is either empty (as an operation flushed it or expired due to time/cron)

Important bit of information is that an action may chose to flush the cache without rebuilding it - as its not needed by that action but the action would affect it. A good example is a new contact being created - the ACL may be affected but in the create action the cache only needs to be flushed so that the ACL action can then build it.

  And for one last extremely confusing thing: I turned off the cron job. Why is the ACL cache still trying to update?

All caching has a expiration time, regardless of the cron if that time expires the next action will try to rebuild the cache. The idea of the cron is to carry out that action offline therefore reducing the time taken on the user action.

I'd like to work through the issue with you so please do keep this conversation going - we have some large customers running ACL without major cache issues so it should be a good case to establish exactly whats going wrong.

Perhaps you could share some numbers i.e. How many ACL groups/rules, smart groups, size of contacts etc. All of these factors will play in important part of the diagnosis.


Somehow our summary fields got a old version of sumfields.php. What's the best way to get the current versions?

I ended up just changing the version number in the info file to 3.1.0.  Then on the Manage Extensions page it then said there was an upgrade.  Hit upgrade and everything was good.


How can I add Recaptcha Version 2 for civicrm 4.3

I was able to apply these patches directly to CiviCRM 4.5.4.  Looking at the code, this version is virtually identical in the ReCAPTCHA code, so it should work fine (although you may need to manually apply the patches).

Update this file:
/civicrm/packages/recaptcha/recaptchalib.php

with:
https://github.com/civicrm/civicrm-packages/pull/92/files

Update this file:
/civicrm/CRM/Utils/ReCPATCHA.php

With:
https://github.com/civicrm/civicrm-core/pull/5015/files

In browser go to:
https://www.google.com/recaptcha and update / create a V.2 key for the website.

then go to:
(Administer -> System Settings -> Misc)
civiURL:  /civicrm/admin/setting/misc?reset=1

Update the Public / Private keys with the new keys.

Cleanup caches: via your civi URL:  /civicrm/admin/setting/updateConfigBackend?reset=1


Check custom data field value change to trigger activity status change

I am not sure if it can already do exactly what you want, but my advice is to first look at the CiviRules extension.

https://civicrm.org/extensions/civirules


For wordpress I think you will have to write some custom development.  I tried to use a search profile for this but found it was lacking.  Perhaps you can figure it out but with drupal there are many possibilities.  The code reference is very old but may get you part way there.  I think this would be a great extension if you have funding.


Is it possible to enable/disable logging using cv?

Yes, it is possible, but you have to use some bash magic. For disabling it is:

echo '{"logging":0}' | cv api Setting.create --in=json

(In case you forget, cv help api shows an example of the bash trick)


No Text Alignment option in CiviMail WYSIWYG Editor

Solved.
Go to Admisister > Customize and Data Screens > Display Preferences
Scroll down and click the Configure CKEditor Button
In the space for "Plugins" Find "Justify" and save it.  While you are at it, add "colorbutton" and "font"


If you interrupt the process while CiviCRM is creating the multilingual mode, you could have a corrupted database.

If you don't have access to civicrm anymore, the best way is to reload a backup of the database as mentionned by Laryn.

If you don't have any backup, i guess you could try reset the database to a monolingual by calling the function :

CRM_Core_I18n_Schema::makeSinglelingual($locale_to_keep)

with $locale_to_keep = 'en_US' or 'fr_CA'...

You need to build a standalone script for this.


How to change ckEditors config.colorButton_colors

Sorry. The question is sufficiently answered here

How do I override the default CKEditor configuration?

The file I was looking for is

sites/default/files/civicrm/persist/crm-ckeditor-config.js

but it isn't 100% permanent :-/


Setting up Webform CiviCRM with an optional contribution/payment

It was a Stripe Payment Extension issue. I thought I was on the latest version but must have been a few commits back. Updating the files to the latest 4.6-dev version and then visiting the Manage Extensions page to run database updates was all I needed.


How to prevent a double enrollment in an event of the same participant.

An event has a profile and "Allow multiple participants".  If this is for a logged-in user, then it and you have unchecked allow multiple participants it should not let you participate in the event multiple times.  If you are using profile matching, then check the profile and see if the matching is set to duplicate or update.


How best to resolve Wordpress theme / CiviCRM conflicts

After inserting some debug code per recommendation at chat.civicrm.org, I discovered an even more focused repair is to just change a single line in civicrm_in_wordpress_set() within civicrm.php.
Replace

  $page = get_query_var( 'page' );

with

  $page = $_GET['page'];

and all problems we have noted disappear. The get_query_var call involves calls to our theme (looking at the backtrace at that point) that evidently get in the way. Obviously a theme interaction, but how would I even notify Benevolent support of the conflict? It seems so simple to make this one change on the CiviCRM side, but I need to understand unintended consequences. Why was get_query_var added in the first place - it first appeared in Civi 5.13.0?


Add supplemental address field 1 to BillingBlock.tpl

You have created a new template or customized one, right? Do you already have the address data available in your template? You can check this by making sure debugging is switched on in your environment and then access your BillingBlock.tpl but add &smartyDebug=1 at the end of the url.
If not, you can use the API to retrieve the address data, assuming you know the contact id. In Smarty you can do:

{crmAPI var='result' entity='Address' action='get' q='civicrm/ajax/rest'}
{foreach from=$result.values item=Address}
  <li>{$Address.some_field}</li>
{/foreach}

This will allow you to retrieve the supplemental address.


Already fixed! See: CiviReports issue with boolean fields


Inside the CiviCRM root directory is a "sql" folder, and inside that is "civicrm_navigation.mysql".  Copy it to "civicrm_navigation_restore.sql" and edit the copy to remove all of the SQL commands EXCEPT this one:
SELECT @domainID := id FROM civicrm_domain where name = 'Default Domain Name';

and any that start with INSERT INTO civicrm_navigation.

Change the SELECT @domainID line to read:
SET @domainID = 1; (assuming this isn't multi-site).

Then run (after first backing up your database!)
DELETE FROM civicrm_navigation.

Finally, run mysql -u myusername -pmypassword databasename < civicrm_navigation_restore.mysql.


Personal Campaign Pages don't have a donate button

Looking at the code, I can see that the donation button only appears if $validDate is TRUE and $contributeURL is TRUE.

Enable debugging (Administer menu > System Settings > Debugging and Error Handling, select "Yes" to "Enable Debugging"), then reload your PCP page, adding this to the end of the URL: &smartyDebug=1.  You'll get a pop-up showing all your Smarty variables.  Make sure that there's a value for both $validDate and $contributeURL.

My guess is either:

You're before the PCP begin date;
You're after the PCP end date;
Your server has the wrong time set.

PS - also make sure there's a value set for $contributionText.  You can set this by editing the PCP and filling in the value for "Donation Button".


Are other Joomla users having problems with the Pay Later options?

I'm not going to say Joomla is a second rate citizen, but it is by far, the least used cms of the three big ones, by people that use CiviCRM. It is the only one I use on a regular basis, so don't get me wrong, I'm not talking it down. I think the answer though is basically going to come down to if you what the demo site updated, you are going to need to ask how you can update it for others to be able to use. I tend to find that, while there are a could of us that use Joomla a lot and try to support it, if I want an integration with Joomla or a feature or whatever, I need to own that and make it happen.

As for the pay later, I don't think I've used that in 4.7, but I do have it installed, so if I can test something out, I'd be happy to. even if you just wanted me to create a blank Joomla 3.7 (just dropped today) and install the latest CiviCRM for you to be able to test on, I'd be willing to do that. In MatterMost, you can reach me @rtobias81, or just comment here and eventually I'll get an alert.


Is it possible to assign a "custom group" to a specific roles of users?

Use 'Access Control Lists'. You can access it by 'Administer->Users and Permissions'. Then go to 'Manage ACLs' to and define a ACL for a Custom Data Set.


Need to know how to print annual donation statements for our donors

Use a Thank-You Letter.

Run a contribution report for 2016.
Select the individual(s) you want to create reports for
In the Actions dropdown, select "Thank-You Letters for Contributions"
Select your Grouping (I use Contact)
Select Your separator-- Comma will put all information into groups separated by commas, Table Cell will separate each contribution into it's own row (Table Cell is buggy)

Here is a very helpful posting about this
https://github.com/civicrm/civicrm-user-guide/blob/master/docs/contributions/manual-receipts-and-thank-yous.md

Somethings I have learned along the way:
1. The bugginess of the Table Cell option can be overcome with Foreach code. I can send you my code but we use LineItems with all our donations so it might not work so well for your setup.
2. There are limits of how many letters Civi can handle at one time. I think it is 600 and that may be due to the PDF generator limits.


Is it possible to limit access to field through ACL or drupal permissions?

One option with Drupal for this sort of scenario is to actually keep your 'read only' users completely out of CiviCRM and deliver whatever they might need through Drupal Views, and if necessary, Webforms (for making updates to data)


What are the core functions an extension can rely on?

Yes, SE isn't designed to have three questions in one, as this leads to a knotted ball of yarn.

API calls are intended to have unchanging interfaces for the life of that version of the API, once the version is marked as stable. Currently API v2 has been retired, API v3 has long been stable, and API v4 is in development.

The nuance you note is that we can only ensure that the results returned by the API are stable if there is a test.

I should also note that if a bug is discovered, eg incorrect tax calculations, then fixing the bug may result in changes to incorrect return values from APIs.

Look through the directory for tests. Note that it can be appropriate to have multiple tests for a single method, and we would love to improve the robustness of the use cases we have tests for.
The most appropriate place to add a test to lock-in current behaviour for an API is likely https://github.com/civicrm/civicrm-core/tree/master/tests, though there are other types of tests in other directories that might be relevant. For a class like CRM_Utils_System_Base, probably add tests under https://github.com/civicrm/civicrm-core/tree/master/tests/phpunit/CRM/Utils. In terms of making utility methods like these have the 'first order' status of a public API method, this is probably something that deserves community discussion. For example, it might be that we could document somewhere a list of methods that are considered public and stable perhaps in a wiki or preferably to my mind in a docblock. Or it might be decided for consistency and improved Developer Experience to wrap the relevant utility functions in an API wrapper. Could you raise this issue in the dev channel at https://chat.civicrm.org or send a message to civicrm-api@lists.civicrm.org after adding yourself at https://lists.civicrm.org/lists ?


How do I troubleshoot DB Error: connect failed on a new installation on Wordpress?

The php mysql extension is no longer supported. Need to use mysqli. See
https://civicrm.org/blog/totten/psa-please-verify-php-extension-mysqli

The web server log might also indicate the error.


You can find the site key information you need in the System Administrator Guide: https://docs.civicrm.org/sysadmin/en/latest/setup/site-key/

The API key is in the database and needs to be set up for a contact that has access. You can install the API Key extension which will enable the API Key in the contact summary if you have admin rights: https://civicrm.org/extensions/api-key

The URL of the CiviCRM instance will be in your civicrm.settings.php. You can check it in the UI if you navigate to Administer>System Settings>Directories and click on the question mark in the green bit on the top of the screen. You will see a window in the right hand corner of the screen and the civicrm.root will be the URL for your CiviCRM instance.

Hope this helps!


What is the recommended way to upload teenage volunteer and their parents data from csv file

You can use relationships to tie the parent(s) to the teen.

https://docs.civicrm.org/user/en/latest/organising-your-data/relationships/

Here is some information on importing relational data on this page. Just scroll down about 3/4 of the way down:

https://docs.civicrm.org/user/en/latest/common-workflows/importing-data-into-civicrm/


Sales Tax (like GST) is per Financial Type so if you need to make an invoice without GST you need to make the Contribution of a Financial Type that has no GST associated with it.

Have a look here for details on how to set up different sales tax rates for the same membership type:

How to apply different Sales Tax rates to the same Membership Type - Back Office


An easy way to know it is goin to Admin -> CiviEvent -> Participant Status

You will see all the Participant Status. Put the mouse over the "Edit" but dont click it. And you will see the url you will be redirected if you click it. This utl is like: "http://dmaster.demo.civicrm.org/civicrm/admin/participant_status?action=update&id=2&reset=1"

The id you are looking for is the id variable, which in the case I show you above is 2. (id=2)

I hope this is what you need!

EDIT: No need for the link. Just int the page of Participant Status you can see it in the column:  "Name (Status ID)"


How can I use CiviCRM for registration, login, forgot password pages on Wordpress?

The registration part is quite straight forward and described in the manual at https://docs.civicrm.org/user/en/latest/organising-your-data/profiles/#wordpress-user-account-registration-option. The profile allows you to collect additional information and populate existing or custom fields.
The login and forgotten password screens are WordPress pages so you can't replace them with something from CiviCRM, but they can be customised sufficiently to make them look consistent and a bit of googling is probably the best way to find out how to do what you want.


The error message indicates that the utility "wkhtmltopdf" was not found at the expected location. This is configured at Administer -> System Settings -> Misc (/civicrm/admin/setting/misc?reset=1), "Path to wkhtmltopdf executable".

You will need to find whether this utility is installed on the new server and if so, enter the full path to the wkhtmltopdf executable. If it's not installed, you can leave this field blank and CiviCRM will use the default PDF generation method instead. However this has performance issues and may cause errors from exceeding PHP memory limit or timeout.

If you don't actually need a PDF copy of receipts, you can disable this with the "Attach PDF copy to receipts" setting on the same form.


Where is CiviPetition currently documented please?

There are some docs at docs.civicrm.org/user/en/latest/petition/what-is-civipetition and more pages if you look in the left sidebar there.


All seems fine but I still get this: You are not currently subscribed to any Groups

The dashboard only shows public groups that a user is subscribed to. You will need to set group visibility to 'Public Pages'. So you might need to update the groups that you would prefer to show up on user dashboard.

Thanks

Pradeep


Can I create a block like of CiviCRM autocomplete search using "Search AutoComplete" module?

A very speedy google on 'drupal autocomplete block' turned up many modules that will help you. Plug in the results of a civicrm api call, remembering to set count=0 to sidestep the 25 result limit. If you get stuck on a specific part then please reply!


The option you're looking for isn't under the Access tab.  It's below all the tab data.  See the attached screenshot.

Note that most reports do NOT offer the ability to view a chart - make sure your report does!  If you'd like to test, use the "Contribution Summary" report, which supports charts.

After you've changed the view, press the "Update Report" button, and on the dashboard, press "Refresh Dashboard Data" and you should be in business.


I agree that this should be possible in the manual registration.
However, you could likely work around this using CiviRules. Not knowing your exact situation I'm guessing here, but this is how I might approach it.

Install the 'Email API' extension (needed to be able to send email from CiviRules).
Install the 'CiviRules' extension.
Create a new participant status simply so it can be seen by the rules engine. Maybe something like 'Registered (manual)'.
Create a new rule 'send email to manual registrants'.
Make the rule trigger 'Event Participant is added'.
Add a linked condition to the rule 'Participant status is (not) one of'.
Set the condition operator to 'is one of'.
Choose the new participant status you created 'Registered (manual)'.
Add an Action 'Send Email'
In this example, you shouldn't need a delay, but it can be useful to introduce a short delay to allow tables to be updated if you need to test them or get data from them.
Lastly, set the email parameters including the message template. You can CC, BCC etc.
Save and test with a manual registration for a fake user. You will have to choose you the custom status you created so the rule will trigger.

You could add an additional action to the rule that changed the participant status to the normal one after the email is sent.


Google Checkout disabled but causes Network Error loading Membership tab

You will also need to disable the google checkout payment processor. This error is now handled in 4.7.31.


Is it possible to force user log out if idle for a defined time?

This is really a Drupal question, since Drupal handles user login/logout and not CiviCRM. I suggest you ask at https://drupal.stackexchange.com/


How to Add Menu Item to Parent Using Civix

Example:

/**
 * Implements hook_civicrm_navigationMenu().
 *
 * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_navigationMenu/
 */
function dmfactuurlink_civicrm_navigationMenu(&$menu) {

  _dmfactuurlink_civix_insert_navigation_menu($menu, 'Administer', array(
    'label' => E::ts('Domus Medica Factuur Link Instellingen'),
    'name' => 'dmafctuurlink_setting',
    'url' => 'civicrm/dmfactuurlink/form/setting',
    'permission' => 'administer CiviCRM',
    'attributes' => [],
    'operator' => 'OR',
    'separator' => 0,
  ));
  _dmfactuurlink_civix_navigationMenu($menu);
}


Event registration page refreshes when clicking continue

I am using 5.15 and event registrations are working.
I did turn on clean url but I doubt it has anything to do.


CiviMember Range Price: Automatically assign Membership based on $amount paid

You can totally do this out of the box with Webform CiviCRM module!

Sorry for the swim squad references - but that's the project I was on when I read your question - here's a quick demo:

in CiviCRM Tab -> add Membership Type - User Select; also add Membership Fee field;
in the Webform tab -> ensure the Membership Type is a Listbox; Use static to only get the ones you need on this form;

Then under Webform Tab -> Conditionals - just a quick example - but you can make this as complex as you like - and even combine statements (is greater than or equal and is less then) to cover your $ ranges.

This says -> if we type in 25 -> we automatically get option1 -> which is my case is White Squad Membership; note how Webform is clever enough to grey out the Membership Type so the user can't self select anymore;

And if we type in 50 or higher -> we automatically get option number 2 -> in my case: a Black Squad Membership

PS - and you're going to get that slider in D8:


Downgrading CiviCRM to use an older extension

I think (with @Xavier) a safer path then downgrading would be to upgrade the extension. You need this extension: https://github.com/CiviCooP/org.civicoop.documents and you should certainly speak to @JaapJansma about upgrading it. But I would bet it is an easier job than downgrading CiviCRM?


Check your individual dedupe rule, change the unsupervised one to first name and last name with weight 10 each and total 20.


Do a search that finds all contacts (for example, Find Contacts and then search without entering anything), then select "All nnn contacts" and choose Export from the drop down menu. You can select all primary fields or specific fields to export.


How can I setup a Manage Magazine Subscriptions in CiviMember

we (Fuzion) worked with John Derry when getting The Monthly going as a Sub on CiviCRM. There was a lot of nuances they needed particularly involving ensuring that Gift Sub reminders went to the original Giftor etc, etc. I think that since that time they have had internal resources to further finesse their subs process in ways that I cannot explain, but potentially someone at The Monthly could.

But in essence yes you can treat a Subscription as a Membership.

If you detail out really clearly what the exact specs are you need then folk may be able to volunarily help you assess how to achieve this in CiviCRM or you can reach out to one of the Partners for professional advise and support (and customisations/extensions if required).

NOTE: The OP referred to Joomla, for readers who are using Drupal CMS, there are also significant workarounds that can be achieved with either Drupal Webforms or with CiviCRM Entity in terms of finessing the subscription process for the user.

Hope that helps


Yes, go try creating an activity on someone's record and assigning it to yourself.  If it doesn't show up in the dashlet, you have a problem, because that's what the dashlet is for.


If you are using Drupal as your CMS, then the answer is "yes". The drupal Webform-CiviCRM Integration module allows you to set up a form to register one or more people for any number of events, with full control over creating relationships, sharing addresses, sending a concise email recipt, and customizing the look and feel of your form.

For more information, see the user manual, or this how-to video from CiviTeacher.


backup and migrate Cannot delete or update a parent row: a foreign key constraint fails

Backup and Migrate module may not be compatible with CiviCRM, and may not understand how to handle the many foreign key constraints within CiviCRM.

Here is the easy way:

Drop the database entirely (back it up first please)
recreate that database with the same name
then restore from your backup.

Here is the hard way:
Particularly, if a failed update has altered the table structure of your database, simply restoring may not work with any tool, because the schema has changed. More information:
http://wiki.civicrm.org/confluence/display/CRMDOC/Ensuring+Schema+Integrity+on+Upgrades


Thank You Mailing for Permissioned Relationship after Renewal

As mentioned by Rebecca, try creating a smart group based on your condition for choosing recipients. Use Membership Renewal activity for sending reminders ad limit the recipients to 'select group'.


Buildkit - amp test recieved incorrect response while connecting to a test application

The error was due to the permission issue but I used another method for solving this.
At the time of amp config I chose [1] for the option perm_type, which sets the appropriate permissions according to linux.

Option: perm_type
Description: How to set permissions on data directories [none,custom,linuxAcl,osxAcl,worldWritable]. See https://github.com/totten/amp/blob/master/doc/perm.md

Default: none

Enter perm_type

[0] "none": Do not set any special permissions for the web user
[1] "linuxAcl": Set tight, inheritable permissions with Linux ACLs
[setfacl] (recommended)
         In some distros+filesystems, this requires extra configuration.
         eg For Debian-based distros: https://help.ubuntu.com/community/FilePermissionsACLs
[2]"osxAcl": Set tight, inheritable permissions with OS X ACLs [chmod
+a] (recommended)
[3] "custom": Set permissions with a custom command
[4] "worldWritable": Set loose, generic permissions [chmod
1777] (discouraged)


Import Contacts creating dupes despite dedupe rules

Easiest way is just to use the Contact ID if it is in your file.

Are you importing to the same location type? It does not dedupe a given data point if importing on a different location type.

I've noticed that you must set your desired dedupe rule to be unsupervised. Selecting a rule that is not marked unsupervised hasn't worked lately and is probably a bug.

I believe this is related Import Contacts with dedupe rules


Contribution page receipt (date and time)

Been there; seen this - exactly this - but it got resolved - likely during a 4.6 minor version upgrade - before we had a chance to debug it ourselves.

I highly recommend you upgrade from 4.5.x for many other reasons than the receipting.


How to Deal With Email Only Contact Records

I'm not sure you'll find the email only contacts will really be noticed with day to day operations.  We have some, granted less then 5%, and I rarely come across them.

Think about the kind of queries your users do with contacts, like using the quick search box in the upper left hand corner and what situations they would likely pull up a bunch of email only contacts.  You have to be searching for a name or email that matches an email only contact's email.  (When it does, I often find a matching contact.  The contact is fully in civi but they gave a different email address when getting on an email list.)

I don't think there is a way to by default exclude them.  However, there are a number of ways you can make it easier to isolate them in queries.

You can create a smart group of everyone else.  (query builder, individual, last name not null).  Then use that group for queries.
You could usurp one of the privacy options if you aren't using it, like "Do not Phone" or "Do not trade" or "Do Not SMS" and exclude that option in advance query.
You could create a new contact type for the email only; though, since it will be a child of individual, there might not be too useful.


Which tokens are available for activity?

This extension could possibly help - https://civicrm.org/extensions/activity-tokens


AGPL: Should sites provide public download links for CiviCRM extensions?

I'm certainly not a lawyer, but I've always assumed the answer to all three questions is "Yes".

That said, I haven't made a comprehensive effort to do so - though my current policy is to post all extensions on Github (and I only use overrides within an extension framework).  I wouldn't want to make my clients post a link, but in theory my Github page would be a single point of download.

To date I don't believe the AGPL has been tested in court though - so I'd expect lawyers to make the argument, perhaps successfully, that the AGPL isn't (always) binding.  Given that many nations' jurisdictions have upheld similar arguments against the GPL, that argument would have an uphill climb.

My take is that the main beneficiaries of the AGPL are the organizations who use CiviCRM vis-a-vis developers they hire.  It's a very powerful tool against vendor lock-in!


Export of custom multiple choice options to CSV files limited to 32 characters

Ahh it's a field of type number, which means it's getting set here: https://github.com/civicrm/civicrm-core/blob/77c3b7089c290880a7599cc77cdbe87fa6958c13/CRM/Export/BAO/ExportProcessor.php#L1498.
So yes if it's an option list then there's a mismatch. You could work around it by defining the field as type string instead and still use numbers as the values. But yes in general it seems like a bug - you could file a ticket at https://lab.civicrm.org/groups/dev/-/issues


I would assign a tag to the contact when you import them, then do a search for that tag and create the smart group from the search results.


As I'm sure you are learning, PCI compliance is a complicated business.  The payment processor (I discuss eWay below) and your own operations play the biggest role in PCI compliance. Some of the issues on the organization's end are:

your own server's security protocols (including, but not limited to, SSL)
how the payment information is transferred to the payment processor
in-office protocols for access to data both on- and off-line

A great starting point is http://gitbook.civicrm.org/initial-set-up/security.html

One component is whether or not your site is utilizing SSL.  The CiviCRM wiki on Security and PCI Compliance has some excellent points about SSL.

CiviCRM itself does not store credit card information in the database, but if you are collecting credit card info on your Civi forms and then sending it to the payment processor, the credit card info will be on your server temporarily by default (see Lobo's comment here from 2011) so your server will need to be PCI compliant.  (Eileen mentions options like direct post and transparent redirect in this CiviCon talk for certain payment processors, but that takes some semblance of custom work: Adventures in Payment Processing).

For eWay specifically, their website says they are tier one PCI DSS compliant. If you are sending people to an external site for eWay to process on their site (I don't know if that's an option for eWay), then a lot of the responsibility for PCI compliance gets off-loaded as well.  If you are collecting credit card info on your own Civi forms and then sending the info to eWay, they have a page about your organization's responsibilities in PCI compliance.

A great explanation of PCI compliance and things an organization should consider relating to PCI compliance is available from this CiviCon Denver 2015 talk: CiviCon Denver Data Security and Payment.


What is the purpose of the "default invoice payment page" field in the CiviContribute Component Settings page?

"Default invoice payment page" setting is used to set contribution page that can be used to pay pending or partially paid contribution using payment processor.

More about the setting and uses:

Wiki: https://wiki.civicrm.org/confluence/pages/viewpage.action?pageId=346750980

CRM Issue: https://issues.civicrm.org/jira/browse/CRM-19263

HTH
Pradeep


Create a new extension and use hook_civicrm_summary which should be of more use and you can add value at any place

Please refer to the following link for more reference
http://wiki.civicrm.org/confluence/display/CRMDOC43/hook_civicrm_summary


Getting civicrm in Israel and in Hebrew and English

The program is Open Source, so it is available everywhere.

When you download CiviCRM at https://civicrm.org/download/list you can also download the Localization files.

The Hebrew language is available in there, although not all texts are translated yet.

But I am pretty sure you can adjust it to your needs and make sure you can at least translate anything that is shown to your visitors.

On one of my CiviCRM's I have set the language to Hebrew, so you can have an insight how much is generally translated.

If you choose CiviCRM for your organization and you would do some extra translation for your site we'd love to help you give it back to the community. We would all benefit from it.

(More info: https://www.transifex.com/civicrm/civicrm/)


How do I upgrade CiviCRM on a local site that I installed with buildkit civibuild?

tldr

cd buildkit/build/dmaster/sites/all/modules/civicrm

## Ensure that all your stuff is clean/committed.
git scan status

## Update git repos. Choose ONE of:
git scan up
./bin/givi checkout X.Y.Z

## Regenerate data. Choose ONE of:
civibuild reinstall dmaster
./bin/setup.sh -Dg && drush civicrm-upgrade-db

Checking the git repos

There are multiple git repos in your build (civicrm-core.git, civicrm-packages.git, etal). Before making a major switch, I first double-check that all of these repos are in sane condition -- ie there shouldn't be any uncommitted changes, the repos should be on normal branches, etc.

git scan status

Updating the git repos

As a developer who tracks mainline branches, my day-to-day interest is "updating to the latest revision of master or 4.6". The command git scan up will perform a standard "fast-forward merge" (git pull --ff-only) across all the repos:

git scan up

(Tip: If you didn't cleanup earlier, then "fast-forward" may not be possible. It takes some judgment to decide what to do -- e.g. a "merge" versus "rebase". Rather than risk a wrong decision, git scan will skip these repos and display warnings instead.)

Your example uses a tag. Hopping among tags is a bit different than tracking a branch. For this, I use givi:

./bin/givi checkout 4.7.17

Updating the generated code, config files, databases

As a developer who does weird things on a day-to-day basis (like manually hacking SQL records to provoke weird situations), I have trouble remembering all the weird things that I've done before -- and honestly don't care about them afterward. I just want to get back to a consistent/clean state. Reinstalling is nice because it recreates/overwrites all generated-code, config-files, and database content.

civibuild reinstall dmaster

However, that does reset all the data. If you care about the content in the database, then don't do a reinstall. Instead, update the generated-code and perform a DB upgrade:

./bin/setup.sh -Dg
drush civicrm-upgrade-db

See also

For more discussion, see the blog post: https://civicrm.org/blogs/totten/developer-tip-managing-multiple-git-repositories


How to configure Membership Status Rules so expired members can renew?

I think there are 2 separate issues here.  I'll try to tackle each.

  Using the plus [+] or minus [-] sign does not get retained when saved

I just tested on Civi 4.4, and a minus sign is saved, a plus sign is not.  An unsigned integer is considered positive here. If this isn't what you're seeing, try to replicate your situation on the demo site.

  Oops, it looks like there is no valid membership status corresponding to the membership start and end dates for this membership.

CiviMember works by evaluating the membership status rules in order.  The rules may overlap - for instance, a "current" member can be start date to end date, and a "new" member can be start date to (start date + 1 month) - in that case, whichever rule comes first takes priority.  However, you can NOT have a gap where no status applies.  That's what causes this error.

Given your particulars, my guess is that your users are trying to create an "upcoming" membership - where the join/start dates are in the future.  Unless you create a membership status that covers that (e.g. "upcoming is (start date - 1 month) to start date"), you'll get this error.

If this doesn't answer your question, please edit it with concrete numbers - what your membership status rules are, and what the join, start and end dates are for a membership that causes this error.

UPDATE: I know this is months old - but I just saw your update.  The "Grace" period ends 12 months after the end date - but expired doesn't take effect until 13 months after the end date.  You'll see the error you're seeing for anyone whose membership ended between 12 and 13 months ago.  Set your "Expired" to take effect 12 months after the end date, to match the end of the Grace period.


Why are my QuickForm checkboxes always ticked, in postProcess()?

Two suggestions:

Do the setting in setDefaultValues() instead of buildQuickForm().
I find the "form data received by postProcess" often contains duplicates and miscellaneous other stuff and I'm sometimes not sure what to look at but usually use $this->_submitValues for visible fields. What are you examining?


Drupal View adding trailing zeros to Activity ID

I fixed it! While getting a screengrab, I noticed there was some aggregation on the Activity Field which I must've set it in error!

I reset this to the default and it's working.


How to add logo to Contributions - Receipt (on-line)

This issue has been resolved.  I am almost too embarrassed to tell you what the problem was.

All this time, I was working on the Contributions Receipts, but doing my tests on a Membership page.  As soon as I noticed there was also a Membership receipt it all came clear. So, if anyone else ever runs into this issue, remember if it's a contribution but not a membership, it uses the Contribution Receipt.  If it's a membership it uses the membership receipt.

Thank you everyone for trying to help me figure this one out.  You did open my eyes to a lot of possibilities.


I would do it using search builder, not advanced search.


how to have seperate contribution pages for each membership type.?

You can create 3 contribution pages, each having single membership type(selected under Memberships tab of contribution page) and set it to default and change the link(boxes from the screenshot) to use respective contribution page.

To hide the option you can use JS or CSS.

For emails not getting send make sure you have configured everything correctly like
1. Postfix package
2. From address in CiviCRM (CiviCRM >> Administer >> CiviMail >> From Email Address)
3. Updated the default mail accounts (CiviCRM >> Administer >> CiviMail >> Mail Accounts)
4. Updated Organization Address and Contact Info (CiviCRM >> Administer >> Comminications >> Organization Address and Contact Info

Probably looking  in Civi or CMS or apache logs for any suspicious errors might help to find the problem.

HTH

Pradeep


Can only Primary Members renew a membership?

I think the only way you could do this currently is by having the 'family' as an Organisation, use the 'on behalf of' approach on the Contribution page, and ensure all Family members are 'current employee' and have a 'permissioned relationship'.


How to make the SyntaxConformanceTest use sensible values when it calls the create action of my new API?

For most of the tests, it was sufficient to provide an assignTestValue method in the SavedSearch BAO.

This did not solve the problem though for testCreateSingleValueAlter.


Contact Summary Editor Extension Question

You can use one of the Extended Reports for Events and Contributions respectively to display on the contact summary screen. Go to the Display Options tab and select 'Make available for contact summary page (requires contact layout editor extension)'.


Can I create a custom System Workflow Message for a particular Contribution Page?

As I learned from @Nicholai in a previous (unrelated) thread, you can override these templates with some pretty easy logic to add something custom to a single page. For example:

{if $contributionPageID == 20}
{* whatever you need to do on this page *}

{/if}

I assume this would work in this case, too. If you try it and it works, let us know!


Keep getting "invalid email" message on any Civicrm/Joomla operation, such as register new individual or org address, or anything requiring email

This is fixed in 5.21. If you want to apply the patch now it's a small patch:
https://github.com/civicrm/civicrm-packages/pull/271/files

In fact for a quick temporary fix all you need to do is change that line 58 from

$part = idn_to_ascii($part, 0, INTL_IDNA_VARIANT_UTS46);

to

$part = idn_to_ascii($part);

More info: https://lab.civicrm.org/dev/core/issues/1469


How to trigger a confirmation email when registering participants via API

There is a send email API in an extension that should be able to handle that? Not the automatic sending but you can trigger the API in whatever processing you do. Extension can be found here: https://github.com/CiviCooP/org.civicoop.emailapi


Should Word Replacement work on button text?

Yes, Word Replacements does work for this. I replicated your issue as it is case sensitive. The helper text says:

IMPORTANT: Replacements are case-sensitive whether 'Exact Match' is checked or not.

To get it to work you need to enter it as Contribute in Propercase.

I referenced the value of it below as custom CSS styling could differ from the value:


The LTS as you know it is the last one!

Eileen explained the details here: https://civicrm.org/blog/eileen/the-lts-going-forwards

Essentially the idea is that through better release/QA/testing we can make the current 4.7 the Long Term Stable release. In combination with the fact that innovative ideas / new features are going to be housed in extensions.


Has Let's Encrypt been put into production with CiviCRM?

Yes - I'm using it on one production site and one pre-production.  One has the full letsencrypt client, but it assumes root access.  The other uses an alternative client https://github.com/diafygi/letsencrypt-nosudo that doesn't need root and works on shared hosting (but you may need to tweak your .htaccess file for the verification process).

I've not needed to renew certs yet.  Although not really a problem, be aware that certs only last 3 months (though I think that's during beta).  If you have access to the webserver config, there is an auto-renewal feature but if you need to raise a support ticket on a shared hosting platform, that's less convenient.


I remember just that I had to make some edit for the debugging symbols, but can not find my notes about this. It was related to the angular modules


Membership sets to Cancelled when Contribution Fails. Why?

This is the expected behavior in CiviCRM, when you have a Contribution related to a Membership, and you set its Contribution status as Cancelled (manually or automatically through a ipn payment processor) it will cancel the Membership too.
You can take a look to source code (4.6.x) where this is happening

https://github.com/civicrm/civicrm-core/blob/4.6/CRM/Contribute/BAO/Contribution.php#L1512

You can patch civicrm core to avoid Membership to be Cancelled when Contribution around this line:

https://github.com/civicrm/civicrm-core/blob/4.6/CRM/Contribute/BAO/Contribution.php#L1484

if (!$baseIPN->validateData($input, $ids, $objects, FALSE)) {
  CRM_Core_Error::fatal();
}

// ## Patch Begin ## Fix to not update membership status when updating contribution status
$memberships   = array(); //&$objects['membership'];
// ## Patch End ##
$participant   = &$objects['participant'];
$pledgePayment = &$objects['pledge_payment'];

There is a forum thread discussing this:

http://forum.civicrm.org/index.php/topic,34082.msg154608.html#msg154608


Can I change the text "[CíviMail Draft]" in a language that local users underdtands?

CiviCRM has a feature called 'Word Replacement' which you can find under Admin > Customise, or at civicrm/admin/options/wordreplacements?reset=1 which I think is worth trying out.


Only PayPal can tell you the reasons for an account limitation and the steps required to resolve it.

PCI stands for "Payment Card Industry", and is a standards body that Visa and MasterCard and other payment card providers are part of. They created a set of standards that merchants must meet to be compliant. PayPal does not validate, and is not responsible for, merchant's compliance when handling payment card data directly (e.g. credit card for fields on your website).  Merchants accounts who do touch credit card numbers directly (e.g. a Pro integration), and are not compliant, are likely to have their accounts deactivated.

But since you seem to be talking about a regular PayPal Express Checkout payment, which would not involve any payment card data external to PayPal's site, your client's PCI compliance is not relevant at all for this type of payment. Something else is going on with regards to it.


Why is the entity.action permission sparse?

I like the table.

It would be really cool if that information were available inline as part of the "API Explorer" -- eg when you inspect the Activity.create API, you'd be able to further review the required permissions.

The permissions in the table you describe are generally coarse-grained, entity-oriented permissions. Quintessential examples are "edit all contacts" or "delete mailings". These depend only on the entity name and action name.

The other items that you're asking about could be categorized as fine-grained authorizations. These depend on the specific data involved. However, they slice-and-dice differently (applying different rules to different data in different use-cases).

DynamicFKAuthorization is applied to Attachment API. Every attachment is subordinate to another record (like Mailing #123 or Contact #456 or Activity #789). Your permission to CRUD an Attachment depends on your permission to CRUD the targeted record. The basic idea is delegation. For example, the permissions for Attachment.create(entity_type=mailing,entity_id=123) are determined by delegating to the authorization logic of Mailing.create(id=123).
_civicrm_api3_check_edit_permissions() is nominally applied to many API entities, but in reality only applies to Phone, Email, Address, IM, OpenID, and Website records. All of these are subordinate to Contact. Your permission to CRUD a Phone depends on your permission to CRUD the contact record.
BAO::addSelectWhereClause is nominally applied to most API entities. On its own, it doesn't do much, but it can be adapted via subclass or hook. It allows to limit visibility into entities based on their data. For example, a listener might define a rule that "the current user can only query activities of type Meeting".

These three examples have some similarities (e.g. they're all fine-grained), and they have some arbitrary differences (e.g. procedural style vs OOP style), but they also address qualitatively different scenarios. I don't think their original authors intended/expected them to be compared in this way, so it wouldn't be accurate to describe them with an "over-arching strategic architecture". However, if someone finds an elegant way to make these more-similar, that would be great.

(Edit) Returning to your original question -- "Why is the matrix sparse?" The matrix only addresses cases where we expect coarse-grained/entity-oriented access-control to serve the business-needs of typical organizations. In cases where we expect the business needs to be more fine-grained/data-oriented, you need to reference more nuanced logic.


Does Civi CRM have ISO 27001? And is it compliant with ISO 27002 and ISO 27017?

The standards you reference all relate to information security infrastructure and processes. It doesn't look to me like they apply directly at the application layer.

CiviCRM is going to rely on the security of the underlying platform (LAMP stack) and how it's managed. I suggest you rephrase your question with a specific concern about CiviCRM.


Can you search for only manually added members of a smart group?

I have an experimental search extension that provides many missing features, and includes your needs, I believe.
You can try it if you're up to that https://lab.civicrm.org/artfulrobot/keenies but it should be considered alpha, beta at a push! Please see the README for the searches it can do.
It includes a search on the manual added/removed from a group (smart or not), so using this on a smart group basically ignores the criteria.
I built it because if you're using a smart group for a mailing group, it's helpful to be able to search for people who have unsubscribed, but there could be many uses.
It's in early stages, and may be abandoned if/when the core CiviCRM new search project comes to fruition and provides this functionality (but I built this now because that could be a while).
EDIT: for convenience from the README as of 9 July 2020:

Implemented searches

Has Activity: choose activity types; relationship (with/target, assignee,     created); date range; subject (exact or pattern);
location.

Contact details: contact type(s); created date range; source field.

Manually added/removed from group: select group(s) and a status:    Added/Removed. e.g. find exceptions for smart groups.

In group: select group(s). This is like a normal group search, so works    for smart and non-smart groups. You can put this criteria
in a 'not' wrapper    to find people not in a group.

Has clicked a link in a mailing: date range for the click; select    mailing(s) they must have clicked in.

Has opened a mailing: date range for the open; select    mailing(s) they must have clicked in.

Was sent a mailing: date range and mailing(s) selector.

Has tag(s): select one or more tags.


After Upgrading to 5.23.0 New Cases Missing Custom Field Data from Webform Submission

This is a core bug, have logged an issue and provided temporary fix for it on the ticket.


After Import to group, individuals in that group not showing up as recipients to in CiviMail.

When you look at Groups tab for one of the imported contacts, is the status of the Group "Added"?  My suspicion is that the status is "Pending" and thus it will be excluded from use.

Pending is used by CiviCRM to allow permission by end users to use the email address and is used when the Group is set as "Public Pages".

You should make sure the group is set as "User and User Admin Only" which should remove the permissioning component.  (I think you need to reimport the contacts, or at least re-add them to the group once the setting is fixed.)

More on this can be found in the Visibility section here: http://book.civicrm.org/user/current/organising-your-data/groups-and-tags/


The documentation for that lives here:
https://docs.civicrm.org/user/en/latest/common-workflows/importing-data-into-civicrm/#import-contributions


Bulk Delete of Spam Contacts and related Drupal Users

Since you are using Drupal, you can install the CiviCRM Entity module, and use Views Bulk Operations to create a View that will delete contacts, or any CiviCRM data in a Drupal Batch API process


Drupal - MySQL support not included in PHP

CiviCRM is looking for the function mysqli_connect(), which is provided via the mysqli ("MySQL improved") extension in PHP.

To enable this, uncomment -

extension=mysqli.so

If that doesn't work, your next question may be: How to enable mysqli in PHP?


Check sums clicks - can they be measured

Since you specifically want to know about checksum links to webforms, you could patch webform_civicrm to record something after it calls CRM_Contact_BAO_Contact_Utils::validChecksum() to validate the checksum.


To anyone else trying to do this:

Install/enable Metatag module
Install/enable Context module
Enable Metatag:Context submodule

In Metatag module settings you will now be able to enter either the path or the query string to set the tags.  To make query strings work, you will also need to configure those in the Context module setup.


configuring SMTP on windows 7 for Civicrm

If you want CiviCRM to send email, you'll need a means of delivering them! SMTP is the internet protocol for doing this. Unlike Linux, Windows does not typically include an SMTP service out of the box. That's OK - you probably want to outsource that task to a provider!

Since you're coming from a LAN, it may be that your internet provider offers an SMTP server you may use. This would be suitable for limited mail use, but not suitable for large mailouts. Consult with your ISP to understand their usage policy.
You mention you're on a LAN at an institute. It's possible your institute provides an SMTP service already - your IT support (assuming you aren't the IT support yourself!) may be able to help.
Dedicated SMTP providers (Wiki listing) are your next option.

Some of these offer a free tier (see my comment below). Free service may have some other cost associated, so choose a provider that you trust (they will be delivering your mail!) and can rely on.
Some of these providers will require a plugin to work well with CiviCRM.

It's possible to use some "regular" mail providers (Google Apps and similar providers) as an SMTP service. Unless this is a development or test instance, I would not recommend this. (Basically, if you depend on the mails being delivered quickly, choose a dedicated service from those above and pay a few bucks.)
Since you're hosting on Windows, you can't use mail() or sendmail options without installing a local Message Transfer Agent (MTA). This probably isn't the right option for you; choose this only if you have experience with managing internet-facing mail servers.


Year End Contribution Summary for Donors

The extension Summary Fields, will give you a token for total contributions per year, which you can use


How to obtain user input from an API call

I'm assuming you're on Joomla otherwise I'd say try civicrm webform. One option is define custom fields for cases and then use them during hook_civicrm_postProcess. Another is to add some javascript/jquery to the form via hook_civicrm_buildForm or .extra.tpl to pop up a dialog box to get the input, but that seems awkward - your original idea of having another form that comes before seems better.


How does one get rid of the CSS errors regarding dashicons.eot

The page you loaded seems to be about widgets and not related to civicrm


Are there any pre-conditions or required settings to print/merge documents in 4.7?

I had a similar issue on an installation with PHPOffice.

PHPOffice is automatically installed via composer in CiviCRM, but apparently composer fails to check for needed PHP extensions. In my case php-zip was missing, and after installing that everything went fine.

I am not sure if composer should check the requirements, or if they aren't properly configured. Eli's comment helped a lot debugging this for me!


What to do when upgrading from 4.3.4 to 4.6.0 is failing?

If I understand correctly, you first installed 4.6.0 and then loaded a DB dump for 4.3.4 on top of the 4.6.0 system. Doing so would put the database in an inconsistent state — some elements from 4.6.0 (e.g. the table civicrm_mailing_abtest) are still present, but other elements are replaced by the 4.3.4 version (e.g. the table civicrm_domain).

When loading an old database dump, ensure that you are loading into a pristine database. The easiest way is to drop+recreate the database before loading.

If for some reason that's not possible (eg the database is shared with another app whose data must be preserved), then you might drop all civicrm_* tables (and preserve the other tables). The exact steps will depend on your tooling. I can't speak about any GUI tools, but if you're comfortable with scripting, then you could ripoff this snippet from setup.sh.

echo; echo "Dropping civicrm_* tables from database $DBNAME"
echo "SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA='${DBNAME}' AND TABLE_TYPE = 'VIEW'" \
    | $MYSQLCMD \
    | grep '^\(civicrm_\|log_civicrm_\)' \
    | awk -v NOFOREIGNCHECK='SET FOREIGN_KEY_CHECKS=0;' 'BEGIN {print NOFOREIGNCHECK}{print "drop view " $1 ";"}' \
    | $MYSQLCMD
echo "SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA='${DBNAME}' AND TABLE_TYPE = 'BASE TABLE'" \
    | $MYSQLCMD \
    | grep '^\(civicrm_\|log_civicrm_\)' \
    | awk -v NOFOREIGNCHECK='SET FOREIGN_KEY_CHECKS=0;' 'BEGIN {print NOFOREIGNCHECK}{print "drop table " $1 ";"}' \
    | $MYSQLCMD


Why do the contribution page amount labels now appear before the amounts?

I can't find the exact issue or commit at the moment, but these changes were made to standardise the order the of the label and the price. Depending on the type of field used, the price and label were sometimes in a different order.

For example, in 4.4:

And in 4.6:

As a sidenote, I think we decided on the order 'Label - Price' because you would normally look at what you wanted to buy, and then how much it is. That made the most sense I think, when choosing ticket options for an event for example.


What build type are you using, Erik?

The translation files are included in drupal-demo but are commented out in drupal-clean.

Uncommenting the line:

 # extract-url --cache-ttl 172800 civicrm=http://download.civicrm.org/civicrm-l10n-core/archives/civicrm-l10n-daily.tar.gz

in app/config/drupal-clean/download.sh in your local buildkit will mean that localisation files are downloaded as part of the download.

You could go a step further and submit a PR that uncommented that line in buildkit, but that is probably for another day.


You can use an API to get the image URL for a contact. For eg -

$result = civicrm_api3('Contact', 'getsingle', [
  'return' => ["image_URL"],
  'id' => contact_id,
]);

And then copy the value returned by the above API and fed it to the source of image tag in simple HTML code:-

  ......
  ......


Where/How does CiviCRM track sent reminder notices?

Info on sent reminders is stored in civicrm_action_log table.

https://issues.civicrm.org/jira/browse/CRM-15728 may help you understand how it works.


How does the API deal with the addition of an existing contact?

you can either set a check_duplicate=>true extra param... but to be honest, I always done the duplicate checking on the code side before calling the contact create api, because it's way more versatile and it's easier to match your exact need


Themekey Rule to Present Theme on CiviEvent Page

Use Themekey CiviCRM from Fuzion Github, it can select themes by contribution page ID or type, and event page ID or type.


Auto Renewal Membership Confirmation Emails not being sent - PayPal (Updated Title 2016-04-05)

UPDATE - 2016-04-05 - OK ... the patch I installed from CRM-18245 appeared to take care of the issue with manual renewals from the website.   I received a copy of the Paid Invoice, along with the email from PayPal acknowledging the payment.

So the final issue now is what is happening with Auto-Renewal Memberships?  Are they supposed to be acknowledged by the system, and a receipt issued to the member??

Based on the fact that on April 4th I received a PayPal notice of payment, but no other notice of an Auto-Renewal, I suspect that area is not working correctly.


Manage Events fatal error after upgrading from 5.4 to 5.10

I can see that the getAllPermissions() method is present, so if you're getting a "call to undefined method" error you very likely have either an extension or a customization that's overriding the file <civiroot>/CRM/Event/BAO/Event.php.

Turn on debugging and backtrace (Administer menu » System Settings » Debugging and Error Handling) and this error should become much more detailed.  If you're not sure how to interpret the backtrace to find your customizations, you can edit your question to include the backtrace and someone will likely be able to help.


I think it is Possible to customize the error, On your install, visit the Form Registration.php in CRM/Event/Form directory.

The the error message is found in the function checkValidEvent(XXXX). and the line looks like this

CRM_Core_Error::statusBounce(ts('Registration for this event ended on %1', array(1 => $endDate)), $redirect);


When you access Civi, you log into your CMS (Joomla in this case) with a CMS account. That CMS account "Joomla Administrator" will be linked to a Civi contact. My guess is that your "Joomla Administrator" account is linked to the "Test Gmail" Civi contact. You can check this by looking at "Test Gmail" summary page in Civi: "Contact ID / User ID" will show Civi's ID for the contact and Joomla's ID for any linked account. A Joomla ID will have a clickable link that will take you to the Joomla Account profile.


MembershipEndDate not exposed in Search Builder

It's present, but for who-knows-what-reason, it's labeled "Membership Expiration Date" in Search Builder.

However, before you go celebrating, in 4.7.25 there's a bug CRM-19998, which says, "Membership start / end date have no effect in Search Builder".

The GOOD news is that a fix was written for this.  It was merged yesterday.  The bug tracker says it's in Civi 4.7.27 - but next month is going to have a slightly unusual version release, so I suspect this is actually coming in 4.7.28, on December 6, 2017.  If you need it today you can manually apply the fix.


How to set a contribution to another membership for the same member

You can use the Membership Payment extension for this.

This extension adds a new Membership field when editing a contribution.  You can use this to add, remove and move a contribution's association with a membership of that same contact.

See screenshot below:


CiviEvent Listing module in Joomla not finding database table

Sounds like you also need to update the settings inside your file that points to your Joomla database. I don't know exactly where that is, as I use Drupal. But mine is at /home/username/public_html/sites/default/settings.php. That is where I tell Drupal how to connect to its database. Every CMS I've ever worked with has something similar. Inside that file is a listing of CiviCRM database tables so that your CMS can connect. If you haven't changed it there, then Joomla is still looking for the old database.

Edit:

The lines you're editing in your CMS's settings file would look similar to this below. Unfortunately it doesn't get formatted right when pasting in here, so I've only included the first dozen lines or so.

$databases['default']['default']['prefix']= array(
  'default' => '',
  'civicrm_acl'                              => '`username_civicrm`.',
  'civicrm_acl_cache'                        => '`username_civicrm`.',
  'civicrm_acl_contact_cache'                => '`username_civicrm`.',
  'civicrm_acl_entity_role'                  => '`username_civicrm`.',
  'civicrm_action_log'                       => '`username_civicrm`.',
  'civicrm_action_mapping'                   => '`username_civicrm`.',
  'civicrm_action_schedule'                  => '`username_civicrm`.',
  'civicrm_activity'                         => '`username_civicrm`.',
  'civicrm_activity_contact'                 => '`username_civicrm`.',
  'civicrm_address'                          => '`username_civicrm`.',
  'civicrm_address_format'                   => '`username_civicrm`.',


CiviCRM CSS doesn't appear to be used when viewing live pages

CiviCRM does use the .crm-container and other similar classes in its templates, which helps to isolate the CSS styles (sometimes for better, sometimes for worse). The main problem I have found, especially with Bootstrap themes, is Bootstrap taking over the .label class, and CiviCRM not using a class name such as .crm-label. I've found a relatively easy fix to be using a custom CSS file that is linked from the Settings - Resource URLs administration page. For example, our document is at [cms.root]/sites/default/files/custom_civicrm.css, and contains this code (among other overrides):

div.crm-container label {
  color: #333333;
  font-weight: normal;
  font-size: 1.2em;
}

As I have discovered other strange interactions between the theme and CiviCRM, I've used Chrome to Inspect the CSS to find the class that is just specific enough to cover all of the style that needs to be fixed.


How do I trigger a price calculation update on the event registration page?

Here's how we do it:

We do the two sets of items in a separate price field on the same price set. So the paid options that are required would be in one field, the complementary in another (or several others). I set the price field for the required options to required. Then they are forced to choose one of them. We only have one item in the required section and one in the optional section, but you could have more.

This then forces them to choose the mandatory item every time. We had to do this because folks would select the optional item, the book, and not select the training registration as well.


Scheduled job mail_report fails [500 error] when adding instanceId paramter

What format are you using for the parameter?  It should be instanceId=12, for example.  Any additional characters like quotation marks or brackets will cause it not to run.  See: https://civicrm.stackexchange.com/a/8584/105


Error During "Find & Merge Duplicate Contacts"

The problem you are hitting may be the one that I think we recently provided a fix for here: https://github.com/civicrm/civicrm-core/pull/10442


Custom fields for individual using tab with table causes 404 not found for popup

Try switching your theme to WP Twenty Seventeen or something basic like that.  I tested "Tabs with Tables" on my install (Civi 4.7.23, WP 4.8.2) and in the Civi Sandbox (Civi 4.7.26, WP 4.8.1) and they both worked. If it works with the different theme, the simple fix is to temporarily switch themes when you need to edit these. Hopefully that is not very often. I have a conflict with my theme in a similar area.


How do I hook into a contribution thank you page?

I would think that using a custom template would work, there is a thank you page template. If it is only one contribution page you're looking to add, some quick logic based on contribution page id would work. You can also try some custom behaviors with jQuery: https://civicrm.org/blogs/dave-greenberg/now-its-easier-add-custom-behaviors-templates


Advanced Search: Exporting Groups/tags fields from event participant search

A possible work around is to do the search twice, first search will be to add the contacts to a temporal group and export contacts with the right tags and groups, the second search, export the events related data and use excel function example Vlookup to add tags/groups to your last export. You may want to export the contact ID, which will be your unique column for Vlookup.

Hope this helps.


Civimail 4.6.2 on Drupal 7.36 creating multiple drafts while editing

The answer is to update to 4.6.3.

In CiviCRM 4.6.2 on Joomla 3.4.1, I experienced somewhat the same thing. After sending the mailing, the draft remained in Drafts and was marked as Completed with all the appropriate reports. So, there are two identical listings for the same mailing in each Scheduled/Sent and Drafts areas.

Can the duplicate in Drafts be deleted or is it a the same entry as what is in the Scheduled/Sent area?

I updated today with CiviCRM 4.6.3, and performed the same and usual process and this doesn't occur any longer.


How do I create a custom entity (component)?

If you are using CiviCRM within Drupal, you can create Drupal Custom Content Types for magazine, advert, etc. Your custom content type definition can include fields of data type "CiviCRM Contact" which can be required, optional, multi-valued, etc.


Wordpress install fails : Fatal Error: Uncaught

Welcome to SE CiviCRM
You will need the following MySQL server configuration:
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=true

add above configuration in your my.cnf file.
See mysql requirement for CiviCRM


Yes you should fork the repo and create a pull request against the Master branch which i assume is the branch with the issue. Please see this documentation on contributing to CiviCRM https://wiki.civicrm.org/confluence/display/CRMDOC/Contributing+to+CiviCRM+using+GitHub


Creating a copy of CiviCRM on a test sub-domain (Wordpress)

Please refer to Moving an Existing Installation to a New Server or Location for this.


How do I write unit tests that verify a hook is being fired?

So I figured this out. The specific hook engine for unit testing, very conveniently, comes with an injectable mock property.

After grabbing the hook engine with $this->hookClass = \CRM_Utils_Hook::singleton() you just need to inject a mock object that has a magic __call() method with somthing like:

$this->hookClass->setMock($this);

The hook engine will then call your __call($name, $arguments) method with every hook invocation.

You can see a fuller example here (please ignore the reporting stuff going on - I doubt that is best practice! Also the use of the unit test class as the mock is a bit lazy - its probably best to make a new class to provide the mock)


Cant log in with CiviMobile on 5.8.2 with Drupal 8

Unfortunately we support only Drupal 7, WP and Joomla.
Our extension is not working with D8. The only solution is to modify the extension.


How to show custom data on subsequent recurring contributions or how to setup anonymous donations?

where are the custom field stored right now? on the 1st "payment" of the recurring donation or on the recurring donation itself?

Anyway, we had similar problems with tracking the source of the donation (say if the recurring donation came from a specific campaign or mailig, we want the subsequent contributions being attributed to the initial campaign.

We had to write custom code for that, as it's not necessarily universal that whatever custom field you filled at the initial contribution ought to be duplicated to each new monthly donation.

I can see three paths:

you modify (or pay/convince someone to do it) iats extension so it does copy the custom fields. as I mentioned, it might not be what every user of this extension wants, so might be trickier
you write a custom extension that checks if a new contribution has the relevant custom fields, and if not checks if it needs to duplicate them from the recurring contribution. This might have the benefit of working as well if you use another payment provider than iats (and could help someone else that has similar needs)
you modify the report(s) so they do not only anonymise the donor info if the "want the donation to be anonymous" is set on the specific donation, but as well if it's set on the recurring contribution itself


check you wordpress directory path in your apache/nginx conf. If its different than '/usr/home/xxxuser/public_html/' either you can change in apache/nginx conf or replace $civicrm_root and template_c path in civicrm.settings.php
Below line 242 in the file civicrm.settings.php
    global $civicrm_paths;
    $civicrm_paths['civicrm.root']['url'] = CIVICRM_UF_BASEURL . 'wp-content/plugins/civicrm/civicrm/';
    $civicrm_paths['civicrm.files']['url'] = CIVICRM_UF_BASEURL . 'wp-content/uploads/civicrm/';

NOTE: make sure you have '/' at the end for CIVICRM_UF_BASEURL value.


Depending on what kind of failure happens this might help: https://civicrm.org/extensions/civicrm-error-report-handler

It will email you for more than just jobs but maybe you'd want that too.


Auto-Renew option not displaying membership contribution page

I've found that this happens if Pay Later is selected in the contribution - and this is not the behaviour I'd expect. If I turn off Pay Later, the auto-renew checkbox is ticked - but also readonly, which is also not what I've expect for an optional auto-renew. I'm on 4.6.14 and Drupal. Anyway: this might get you going.

Here's my similar question


Haven't seen this in a while: jQuery is not defined on CiviMail 4.6.16

What happens if you change themes to one of the basics?  This looks somewhat similar in end result to the Backbone errors that are occurring with some of the themes.  Do you see errors on the Manage Events -> Online Registration page also?


SOLVED: 'DB Error: extension not found' after PHP upgrade to version 7.0

Summarising the above conversation:

The upgrade of PHP to version made the PEAR DB extension unavailable. So the exception "DB Error: extension not found" was thrown.
Changing to the database connection URL in the civicrm.settings.php using the prefix mysqli solves the problem.


I'm afraid there is no code that I know off. It's certainly possible we can add an id (or date or something) to the Event listing in the admin-config page. End-user org can become an official Webform CiviCRM sponsor as of $300; send me a direct message if you're interested in learning more.

I would also be happy to review a PR if you (and/or your developer) would like to submit one - I'm a co-maintainer on https://www.drupal.org/project/webform_civicrm


How to make tables with fixed header and left column - scroll vertically and horizontally

We found a way that may perhaps be helpful for others, so we're posting the answer here. This applies to Drupal 7, Civi 4.6.17:

We needed to add extra fields to the Batch update profile code, as per this answer.
We used some javascript and custom css and allocated it to our batch update pages as a Drupal block, using php to target pages with '_qf_Batch_display' in their query string. (Actually, the Css went in our custom css file.)
You can find a simplified example containing the javascript, html and css here.

Hope this might give others a leg up to a system that has worked really well for us.


As a quick fix, you can use the word replacement feature of CiviCRM, which is located in the admin section. Just note that the character '&' is encoded as a html special character. Therefore the original English string you want to replace is Terms &amp; Conditions. Hope this helps.


How do I make street address not a required field?

First, find which profile is being used in your contribution page by going to Contributions/Manage Contribution Pages/Choose relevant Page and select Configure over on right hand side of screen/Include Profiles.  This page will show which Profile is being used.

Second go to Administer/Customize date and Screens/Profiles.  Find the relevant Profile title and select Fields on the right hand side. This page shows all the fields in use and whether they are required or not. In each field, hover over Yes or No and change them as you wish.

Hope this helps.


Event registration form loses 'id' url param and then throws an exception

I solved it in a very unusual way - I added this rewrite on .htaccess file:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.terranova.tamera\.org [NC]
RewriteRule ^(.*)$ https://terranova.tamera.org/$1 [L,R=301]

To unify all accesses to use the non-www url.
For a reason I cannot yet explain, this completely resolved the issue.


Run report of donors with email addresses

You can search in advanced search for 'has an email' by putting a percent(%) sign in the email search field & hitting enter - and include a 'From 0' in the Contribution section of the search.

The resulting search should give results for

  Email LIKE '%' ...AND... Contribution Amount - greater than "0"


Membership payments missing from contact's contribution screen

Adding answer by Eric as an answer so it can be 'accepted' and hence have this question 'answered'

The Member Dues financial type was missing a designated Income financial account. It must have gone away during an upgrade. Adding it back in fixed this issue


CiviCRM - Drupal - Webform Submissions - how can I track the date submitted

On the webform element config set the default value for your civicrm custom date and time fields to ‘now’.
Hide the field using a conditional, or set it to read only.


This is a tricky translation "issue" as far as I know. When you install CiviCRM in one language all the system strings are set with the string status of the translation at the moment of the installation. For this reason when you have an incomplete CiviCRM language translation is common to find some system strings untranslated and although you try to ammend it translating it later they will persist in English.

The only way that I've found to overcome this is to manually overwrite system strings. You can found many of them at civicrm/admin/options?reset=1. E.g. to change contact types names you have to to edit admin/options/subtype?reset=1 options.


How do I set the print order for address labels?

It is complicated to add a sort order on address labels. I think it is possible to add a sort order to your search and that sort order is used in printing labels.

However, in a recent project, we dealt with the exact problem and using the search did not do the trick. I don't know why anymmore. But we solved the problem by creating a custom report template which they are using for their address labels.

You can find an example of such a report at https://github.com/SPnl/nl.sp.bezorggebieden/blob/master/CRM/Bezorggebieden/Form/Report/Tribune/AddressLabel.php#L251
I have added a line marker that is where the processing of the report to PDF starts.
This address label report has additional features such as starting on a new page as soon as a switch of a local chapter starts. (This organisation sends sheets with address labels to local chapters).


Customizing foreign language event confirmation email

For information about how CiviCRM handles languages, see https://lab.civicrm.org/development-team/translations/wikis/home

Text strings in the templates are wrapped in {ts} ... {/ts} tags - that is what triggers the translation.

You could customise the German translation, or if your confirmations are only being sent in German, you could customise the confirmation message itself directly in German - see https://docs.civicrm.org/user/en/latest/email/message-templates/


CPanel Cron stopped working after upgrade to Joomla 3.8.0

The patch found here:
https://issues.civicrm.org/jira/browse/CRM-21203
worked for me on CiviCRM 4.7.25 & J! 3.8.1


Ah yes - you can do this without Conditionals! @Coleman showed me at the CiviCON sprint back in Ft Collins - Here's how in screenshots (below):

NOTE: the only downside is... that CiviCRM core isn't expecting that this is possible - so if you end up checking a participant record - it thinks you owe someone a refund [having paid $500 - the event was only $300]. But if you can make that clear to your admins - they can work with this.

1. In Webform CiviCRM tab -> Event Registration:

2. In Webform tab -> hit Edit on the two participant fees - and add a $ number:

3. This is what it looks like for the user (View Webform):

4. And on the Payment Page of the Webform:


Can't Include Profiles for Contribution Page after migration

Try going to the include profile section and hit 'save', see if the profiles become available.
I had a similar issue, and that fixed it.


Smart group interaction with "display results as" options in advanced search

If you first create your smart group with the 'contacts' view (groups are by definition groups of contacts)... you can then search on 'group'=your group and 'display as'='memberships'. In my experience that works for smart groups as well.


If you are OK with it being on the honor system (you can always check to be sure each team has a paying member), then create 2 Fee Labels 1) Team $100 2)Team Member $0. The teams will have to be sure that one member checks the Team Fee and the rest check Team Member.

It might make it easier if you check the box "Register Multiple Participants" It is under the Online Registration tab of the Event Setup. Then one team member can register the entire team and be sure that they pay the $100 only/at least once.

Note: This is on the honor system since all team members can select the $0 option. But you can check to be sure that they have paid before the event.


Why is the billing name missing from the contributions email receipt?

The answer posted by Interlated can be problematic and display incorrect name if the contact doing the contribution has different name specific for billing fields. For Eg -

A contribution page is created with profile = "Name and Address".
When the page is visited online, the profile + billing profile is loaded on the form.
User unchecks the option My billing address is the same as above and enters a different name and address for billing fields.

The {contact.display_name} will load the original contact name in the mail receipt instead of the expected billing name.

We've also come across this problem and saw some receipt missing the billing fields. This seems to be due to name field in civicrm_address table being set to NULL due to some reason.

Not yet sure how to replicate this, but below patch have fixed the problem for us.

diff --git a/CRM/Core/BAO/Address.php b/CRM/Core/BAO/Address.php
index af3dbd233d..31f69c9996 100644
--- a/CRM/Core/BAO/Address.php
+++ b/CRM/Core/BAO/Address.php
@@ -504,6 +504,10 @@ class CRM_Core_BAO_Address extends CRM_Core_DAO_Address {
       $values = [];
       CRM_Core_DAO::storeValues($address, $values);

+      //Fill name of contact if empty.
+      if (empty($address->name) && !empty($address->contact_id)) {
+        $address->name = CRM_Contact_BAO_Contact::displayName($address->contact_id);
+      }
       // add state and country information: CRM-369
       if (!empty($address->location_type_id)) {
         $values['location_type'] = CRM_Utils_Array::value($address->location_type_id, $locationTypes);


can't search by first name last name; WordPress dashboard

First check that you have Automatic Wildcards enabled, navigate to Administer -> Customize Data and Screens -> Search Preferences, is the first option.

  If enabled, wildcards are automatically added to the beginning AND end
  of the search term when users search for contacts by Name. EXAMPLE:
  Searching for 'ada' will return any contact whose name includes those
  letters - e.g. 'Adams, Janet', 'Nadal, Jorge', etc. If disabled, a
  wildcard is added to the end of the search term only. EXAMPLE:
  Searching for 'ada' will return any contact whose last name begins
  with those letters - e.g. 'Adams, Janet' but NOT 'Nadal, Jorge'.
  Disabling this feature will speed up search significantly for larger
  databases, but users must manually enter wildcards ('%' or '_') to the
  beginning of the search term if they want to find all records which
  contain those letters. EXAMPLE: '%ada' will return 'Nadal, Jorge'.

Check your display and sort name, navigate to Administer->Customize Data and Screens->Display Preferences at the bottom you have two fields, which by default should look something like this:

Individual Display name format: {contact.last_name}{, }{contact.first_name}

Individual sort name format: {contact.last_name}{, }{contact.first_name}

If you want to search always by first name you can change the sort name format to {contact.first_name}{ }{contact.last_name}, now this will only apply for new contacts and not for the existing ones, you will have to update the sort_name for the existing contacts, there was a discussion in the forum about this.

If you search for "Adams," in the demo site you'll see that the result will be "Adams, Lou", as far as I'm concerned, this is expected behaviour.

Edit

Forgot to mention that you can use wildcards like: %joe%, that should include Joe Johnston and Johnston Joe if there is a existing contact by that name.


CiviPledge extension enabled but can't access

It looks like you haven't granted the CiviPledge permissions to a role your user(s) have.

Go to your Drupal permissions (https://yoursite.org/admin/people/permissions) and search for the CiviPledge permissions and grant them according to your needs.


Is CiviCRM going to ever change to be more like CiviCRM Webform?

The short answer is "yes." If you look at civicrm.org/roadmap you'll see 3 goals for the next evolution of CiviCRM, the first being:

  GOAL 1: A POWERFUL FORM DESIGNER

  Today our users, and those that support them, are able to customize
  CiviCRM installations with a number of powerful tools, many with point
  and click interfaces. But there are still some 'flies in the
  ointment', for example:

  Customizing layouts for some back-office screens (e.g. the contact
  summary page) requires developer skills and can complicate the upgrade
  processes.
  Some front-end screens (e.g. online contribution forms and
  event registration forms) have limited layout and page flow options.
  Our community spends too much time tweaking these pages to meet their
  requirements, and maintaining these tweaks through upgrades.
  Building
  and improving core forms requires developers to learn an antiquated
  and poorly documented form layer (HTML_QuickForm). This is an obstacle
  to bringing new developers into the ecosystem.

  A new and powerful form
  designer built with modern tools will make it quicker and easier for
  users and service providers to customize screens allowing them to work
  on  substantive improvements (for example like improved workflows for
  specific use cases).  It will attract more developers to the project,
  bringing their skills and experiences and resources to the project.
  Replacing older varied code with a new consistent set of tools will
  increase the mantainability of the code and reliablity of the product.

The core team has been discussing and refining this goal for several years, however there are still some hurdles to clear before it is achieved, the largest being a considerable funding gap. Building revenue streams and fundraising has taken some (but not all) core team attention away from developing new features.

As of this writing, a start has been made on goal #3 the next generation api, and a partner organization has been working on goal #2 Bootstrap theme integration. The core team has successfully laid the technical and community infrastructure in place for iterative improvements and their next task will be to start work on the form builder system with the goal of gradually replacing core forms with the new technology.


To print invoice the user should either have access CiviContribute or view my invoice permission. "CiviPay: access CiviPay" permission doesn't come with CiviCRM install. I feel CiviPay extension might be conflicting with Print invoice as the extension may be using same url as of print invoice i.e civicrm/contribute/invoice.

Pradeep


In the meantime until this is fixed you can install this patch: https://patch-diff.githubusercontent.com/raw/civicrm/composer-compile-lib/pull/1.patch
Then run composer compile.
May also need to then run composer civicrm:publish.


How do I change the fields shown for participants on the CiviEvent Dashboard?

Not easily ... you can create an extension to call  hook_civicrm_searchColumns to provide the extra data to the template, and then change the CRM/Event/Form/Selector.tpl template to display that data.

Note that will change the event dashboard and also the events tab of a contact and the results of Find Participants.


Why do CiviCRM URLs have 'reset=1' in the query string?

reset=1 clears the current local session variables as well as the smarty cache.

For instance, if you have a form that is getting reused, reset=1 will clear the form's fields (whereas, without it, the form may contain values carried over from it's prior invocation).

If you don't use it, and it's a public, anonymous facing page, I suspect you may get away with it. Try it and see how it works for you.

If the parameter is necessary, you could add it as a redirect to your installation.  For instance, in your .htaccess file include something like:

Redirect 301 /contribute https://[yoursite.com]/civicrm/contribute/transact?reset=1&id=5

Which would allow https://[yoursite.com]/contribute as a valid link to the ultimate contribution page.


Quickly entering attendance with barcodes

Maurice - we did something similar for a large event this year with multiple series of workshops running simultaneously.

Every participant was pre-registered in Civi. Each workshop was added as a separate Event in Civi. We printed barcodes of the participants' Internal Contact ID onto cheap Avery mailing labels - something like 3 inches by 2 inches - using the Event Badge template in Civi, and just pasted the labels on the back of the registration badge holder.

We then created a shared spreadsheet in Google Drive, with a worksheet for each workshop, and set up a volunteer at the entrance of each workshop with a wifi-connected laptop and a USB barcode scanner.

All the volunteer had to do was scan each bar code into the worksheet. It worked pretty well. One hitch was the size of the bar code produced from Civi is a little small, and we used cheap (we got them for about $10 each) old CueCat USB scanners I found through eBay. We then just imported the Participant IDs and updated the Event status for each workshop Participant as Attended.

Just in case, we had plain old paper sign in sheets for each workshop available and used those in some instances.

The biggest challenge of this technique is having enough volunteers, with available laptops, set up in advance with the USB scanner (and the correct driver software!) and decent wifi. Wifi isn't required but it was handy to have the scanned-in Internal Contact IDs for each Participant appear live in Google Drive while they were scanned in for the workshop.


membership recurring payments using Drupal webform

Documentation lives here: https://wiki.civicrm.org/confluence/plugins/servlet/mobile#content/view/120029195

In a nutshell - to integrate payment you need to create a civicrm contribution page - enable a payment processor. In the webform civicrm tab select this contribution page - this way webform civicrm will know that you want to process payments, what payment fields to display and which payment processor to connect with.

Re: recurring payment - to my knowledge you can't do this yet. I've started thinking about how to make that happen.


Is there the ability to globally update relationship end dates or add them to a profile for bulk updates?

I'm guessing you already looked at Batch Update Relationships although it seems like maybe the extension technique isn't working anymore.

The below is maybe only a step above running some SQL directly and I don't recommend it for the average office staffer but it seems to work and is mostly straightforward. The danger is if you get the criteria wrong you might update way more relationship records than you thought.

Visit [your_site_url]/civicrm/api4
Make it look like this screenshot, where you pick the appropriate org contact and set the end date at the bottom to the appropriate date.

Optionally add a "where" criteria for a specific relationship type or types.
Click Execute.
At the bottom right you should see a list of the updated ones.


It's under Administer -> Localization -> Languages, Currency, Locations. Closer to the bottom of the page.


Running cron job CiviCRM on Drupal in the CPanel

I appear to have resolved the issue with the help of the thread at Cron job with shared hosting CPanel

The issue was related to missing backslashes after the username and the password.

/usr/bin/wget https://domain/sites/all/modules/civicrm/bin/cron.php?name=username\&pass=password\&key=key


Report for user and assigned contacts (ACL)

I can't answer directly, but I can make an alternate suggestion for your structure. Instead of using ACL on Groups, you could use our extension which builds ACLs off a Relationship.
This would require a Relationship between your "user" and the contacts they need to call, but it would mean that you can then use this to deliver Reports or Drupal Views to see who is connected to whom, and the status of their calls etc.
If it is of interest you can find it here https://civicrm.org/extensions/relationship-permissions-acls


Canceling Recurring Contributions Without PayPal

Have a look at this Q&A. I think it is the answer you are looking for

Wrong return URLs in PayPal Standard


What is the best way to create a conditional question in case activities?

CiviCRM does not have a built-in way to create conditional fields in its forms. You mentioned Drupal Webforms and yes they could solve that problem for you if you were open to using a webform instead.

Otherwise the only solution is to learn to write jQuery code and customize your form by showing/hiding fields with javascript.


How do I change the CiviCRM Database name

This is what works for me but not sure if it is necessary based on the following http://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location :

Edit civicrm.settings.php with new database info
Delete all template files in templates_c/
Make sure there are no references to civicrm database in drupal setttings.php
Clear database caches and session tables


How to embed Drupal Views in a CiviCRM Email Template?

Fuzion did create a module some time ago that lets a token pull a drupal view in to a mailing. Take a look at https://github.com/eileenmcnaughton/civicrm_views_token

It is sometime since we had to do any work on it but hopefully it still works.

At the time it was pretty limited in what it offered but it did mean that you could eg build a 'latest news' view in Views and then have that pulled in to a bulk mail.


How does one stop people who haven't paid (pending from pay later) from filling an event?

Under Administer/CiviEvent/Participant Status, Edit 'Pending Pay Later' and uncheck the 'Counted?' box.  The same can be be done for 'Pending From Incomplete Transaction', but by default it doesn't count.


CiviReport: Cannot remove Contact ID filter

The same thing happened to me.  The Constituent Detail report is called from the Constituent Summary Report.  I ran the summary report and clicked on a contact to go to the detail report.  As an Administrator I accidentally updated the Constituent Detail Report.  It must have saved the contact ID used in the call from the summary report.  Every time I tried to use or call the detail report from then on it used the stored (saved) contact ID.

To solve the problem I deleted the Constituent Detail Report from the Contact Report area.  I then created a new report using the standard Constituent Detail Report as the basis.


Could not find a valid session key when submitting opt out and unsubscribe forms

Check that your webserver serves correct cache headers when accessing the unsubscribe URL. It sounds like CloudFlare is caching the forms your CiviCRM install generates, and so a later anonymous visitor is seeing an expired form.

While CloudFlare offers additional ways to customise what gets cached, using standard HTTP cache headers is your best bet because it works the same for CloudFlare and other caches your userbase might encounter (ISPs, corporate proxies, whatever).

By default CiviCRM seems to set appropriate cache headers which tell CloudFlare not to cache forms, including unsubscribe forms.

Let's see if CiviCRM sets cache headers suitably on an unsubscribe form. I searched my email for civicrm/mailing/unsubscribe to find an example URL.

Fetch just the page headers using curl -

$ curl --head "http://example.org/civicrm/mailing/unsubscribe?reset=1&jid=XXX&qid=XXX&h=XXXXXXXXXXXX"

And check that you see headers in the response that should prevent CloudFlare caching that page:

HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Tue, 13 Oct 2015 18:08:55 GMT
Content-Type: text/html
Connection: keep-alive
Vary: Accept-Encoding
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, post-check=0, pre-check=0
X-Micro-Cache: MISS

The interesting headers here are Expires (in the past) and Cache-Control (no-cache).

You can compare those results to headers returned by your CiviCRM site for a similar request. Test using the URL that connects directly to your site, not using the CloudFlare URL, and confirm that appropriate cache headers will be set for requests to those URLs on your server.

It might be that you have some other customisation or module which changes the cache headers for CiviCRM URLs, and that would then lead CloudFlare to believe that the forms should be cached.

FWIW, we use CloudFlare on a few sites, and have no custom page rules in place; as far as I know it's worked with no special tweaks.


There is no concept of 'email forwarding'. It could be that you have bcc set up on the Thank You page settings of your Contribution Pages, so check under Contributions > Manage contribution pages, then click Configure for each of your Contribution pages, and head to the Thank You and Receipting tab.

If you have db access you can look in the civicrm_contribution_page table for emails.


The l10n update extension has not been compatible with CiviCRM since version 4.7 of CiviCRM was released in 2016 there does not appear to be any concerted effort underway to bring this extension up-to-date for CiviCRM 4.7+

Source: https://github.com/cividesk/com.cividesk.l10n.update/issues/3

You can still install language packs into CiviCRM as before: https://wiki.civicrm.org/confluence/display/CRMDOC/i18n+Administrator%27s+Guide%3A+Using+CiviCRM+in+your+own+language however the l10n files will need to be updated manually when CiviCRM itself is updated.


After hours of trying to figure out the issue, i have been able to fix this by changing the Theme in Drupal.

When i made the Theme into a default theme the upgrade page showed with no issues.


If you are confident the users are all there, you could do an import with the CSV dump you mentioned, using the Group ID and Contact ID.

1) Batch import the groups using the API csv Import module.

2) Assuming the Group IDs could be imported and match up, you could import the users via their internal IDs. Instead of selecting "Group" for the Entity To Import (as in step 1), you can import "GroupContact" and match up the Group ID field and the Contact ID field.


Has Contact ID been removed from the Contact Import "Matching"?

On the first step you have to check "update" where it says For duplicate contacts.


If you are using a price set, you can set which line items the code is valid for by selecting the line items in the field 'Price Field Options' under 'Additional Options' when you setup the code. You still need to set the event it is valid for under the 'Discounts for Events' section.

Hope this helps.