I would suggest you try it out whether it works on PHP7. And if you find out it breaks you have two options:

Fix it yourself (if you are a developer) and push a Pull request to the original developer
The other option you have is that you pay a developer to fix CiviBooking.

There is also a third option and that is to ask around in the community whether there are other people willing to contribute to make CiviBooking compatible with PHP 7.

I have one last remark, PHP, CiviCRM are all open source. So there is no supplier who guarantees that stuff keeps working. The End of support of PHP5x does actually not mean a lot, it means that the original developers of php5 will not bring out any new (security) releases of that php version. But others might still do that and no one prevents you to fix your php yourself when you discover a security flaw.

One really last remark, you said you depend on CiviBooking. The other option you have is not to upgrade php 5 to 7 as it brings in a risk for continuity of your primary process in your organization. But if you do not upgrade you have another risk and that is that your php 5 might become insecure at some point in the future.


Same accepted answer: https://stackoverflow.com/a/51280077/4329215

If you build a custom form, Civi need some fields for when a new Drupal user is created.

1: Go to Civi profiles (/civicrm/admin/uf/group?reset=1) and select the desired profile you want to include in the form. I selected "Your registration form".
Go to settings of the profile and select "used for => Drupal User Registration"
In Advanced Settings check Account creation required

2: In your custom form, implement the function: 'civicrm_form_user_register_form_alter'.

public function buildForm(array $form, \Drupal\Core\Form\FormStateInterface $form_state) {
    $validators = array(
        'file_validate_extensions' => array('jpg jpeg png'),
    );
    $form['uname'] = array(
        '#type' => 'textfield',
        '#placeholder' => t('Username*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );
    $form['organisation'] = array(
        '#type' => 'textfield',
        '#placeholder' => t('Organisation name*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );
    $form['password'] = array(
        '#type' => 'password_confirm',
        '#placeholder' => t('Password*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );
    $form['name'] = array(
        '#type' => 'textfield',
        '#placeholder' => t('Full Name*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );
    $form['email'] = array(
        '#type' => 'email',
        '#placeholder' => t('Email Address*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );

    $form['street'] = array(
        '#type' => 'textfield',
        '#placeholder' => t('Street*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );
    $form['nr'] = array(
        '#type' => 'textfield',
        '#placeholder' => t('Nr*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );
    $form['zipcode'] = array(
        '#type' => 'textfield',
        '#placeholder' => t('Zipcode*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );
    $form['city'] = array(
        '#type' => 'textfield',
        '#placeholder' => t('City*'),
        '#required' => TRUE,
        '#attributes' => array('class' => array('form-control')),
    );

    //This did the trick!
    if( function_exists('civicrm_form_user_register_form_alter') ) {
        civicrm_form_user_register_form_alter($form,$form_state,'customRegistration');
    }

    $form['actions'] = array('#type' => 'actions');
    $form['actions']['submit'] = array(
        '#type' => 'submit',
        '#value' => $this->t('Create'),
        '#attributes' => array('class' => array('btn', 'btn-cs', 'btn-outline')),
    );
    $form['#validate'][] = array($this, 'regValidate');
    return $form;
}

2: In your template, add the fields with the field name from the Civi function:

{{custom_registration_form.civicrm_profile_register}}

You find the name in /modules/civicrm-drupal/civicrm.module

$form['civicrm_profile_register'] = array(
    '#markup' => \Drupal\Core\Render\Markup::create($html),
    '#cache' => [
      'max-age' => 0,
    ],
);

The fields from the profile will be included in your custom form and no problems with sessions key anymore.


Can I customize the auto email for event registration?

Registering people manually like in your comment will utilize the "Events - Registration Confirmation and Receipt (off-line)" template.

If people self register online, it will use the "Events - Registration Confirmation and Receipt (on-line)" template.

For reference, the templates are listed and available to edit from this screen:

  Administer > Communications > Message Templates > "System Workflow
  Messages" tab


How to send confirmation when importing contributions

Confirmation sending can't directly from import.  There ARE ways to do it, but it slows down the import considerably, so I'd recommend doing it separately.  Here are your options:

Bulk confirmation

When importing, have an easy way to search for the contributions that were just imported.  Perhaps that's already possible because of your data.  If not, add a custom field "Needs confirmation" to your data, and populate that.
Using Find Contributions, find the contributions you just imported.
From the Actions menu, select Receipts - print or email and send confirmations as per the manual receipts documentation.

You could also use CiviRules, but as I started to document the process I realized how complicated that would be - I definitely think the bulk confirmation above is the way to go.


Activity drop down list not displaying activites

Use phpMyAdmin or the api explorer to inspect those records in the db and look for differences between the old activity types which are not showing, and the new ones that are. In particular, check the filter, is_optgroup and is_active fields. This is how to do it in the api explorer:


How to modify System workflow message with a modern look Header?

Put your css inside {literal}{/literal} tags to prevent smarty from processing them.


Total amount not populating for online form

From what I can see, it looks like you're not using a price set - so it's actually a mystery why "Total Amount" appears in the first place.  You don't have anything to total!  I just confirmed on a test site that I don't normally see "Total Amount" on a contribution page that doesn't require it.

If you could edit your question to display a screenshot of the price configuration for this contribution page, perhaps someone will notice something amiss.


What's the Status of CiviVolunteer 2.0's Compatibility with CiviCRM 4.7 on Wordpress

Most of the issues blocking CiviVolunteer 2.0 working with 4.7 are resolved. I believe there were one or two still outstanding, though. I'm going to check with one of my colleagues here at Ginkgo Street Labs and we'll post an answer shortly.


campaign_id is a field in the civicrm_mailing table in your database. I suspect that the only ways to modify this are
- edit the db directly
- use the API Explorer to change the value assuming this is available via the UI (via /civicrm/api#explorer)

hopefully those are enough pointers for a start


Webform Integration Error: cannot redeclare _webform_components_form_rows()

I didn't upgrade webform_civicrm, the Webform CiviCRM integration module to the latest and compatible version. Once I updated the module, the problem went away.

https://www.drupal.org/project/webform_civicrm


How do I setup a webform so that an existing activity in a case is updated?

This is possible at the option update existing case and update existing activity. This option is available after you have enabled case and activity processing.


Looks like the issue was unrelated to the version of CRM I was running. The payment processor settings also needed to be edited to include Discover, after adding it to the list of accepted credit cards; Administer > CiviContribute > Payment Processors. After I cleared everything in the sites/default/files/civicrm/templates_c directory, I was able to see the settings to turn it on. Oop!


Smart Groups - cannot get smart groups to refresh

Some clarification about 'getting smart groups to refresh'

I assume you are using the button 'update smartgroup counts' from the Manage groups screen. This could perhaps be better called 'calculate missing smartgroup counts' (although that wouldn't fit on the button.....) - that button causes the count to be calculated for all groups that the cache has not been built for.

Groups are only recalculated if they have aged out - by default the smart group timeout is 5 minutes. Pretty much whenever you save a contact it attempts to delete the cache for any smart groups that are more than those 5 minutes old (you can set the cache to less than 5 minutes or 0 for more caching). It will then re-fill the cache for that group next time you access it.

If you barely ever edit contacts I guess the cache might not get cleared as often as it 'should' - you can schedule a job (Job.group_cache_flush) to run however often you want - if you do this it makes sense to set the setting 'smart_group_cache_refresh_mode' to 'deterministic' to stop it from also clearing on contact edit (note that this is often good to do for performance reasons)


How can I configure my contribution page so that recurring is not pre-selected by default?

Actually in the iATS Extension we've gone back and forth on this but are now "is.checked" as many orgs/administrators make special "Donate monthly now" pages with specific appropriate defaults for monthly $amounts like $25 or $50 - typically less than the default on a "Donate one time" page. On a Donate monthly to get people through without extra checking of boxes - the default is now is.checked (if recurring is an option). To uncheck that box you need to add some Javascript.

This is what you want:

$('#is_recur').attr('checked', false);

There are several ways to go about adding this [and not sure this is the best one - but it's one that I understand, it's what I typically do] - on Drupal 7:

In the theme's template.php - when preprocessing a page - I'll insert js - based on path:

So if we're on a civicrm/event/transact url -> then load civicrm-recurring.js

and that civicrm-recurring.js file lives in the theme's js directory and looks like:


Is there a reason why custom field sets cannot be multiple value?

The documentation says they are only possible for contact records. See https://docs.civicrm.org/user/en/latest/organising-your-data/creating-custom-fields/#multiple-record-fieldsets. I expect the reason for this is that it would have been a lot more effort to add it for all for other entities. There are some built in ones for contacts so I guess it was easier to extend for contacts. It wasn't there from the start


How can I create custom contribution page (CiviCRM 4.7.25 on Wordpress 4.8?)

Can you please edit your question to add your CMS and CiviCRM version. Depending on your CMS there may be other options for customization.

The yellow section only appears when a user is logged in to the site. It is designed to prevent a user from overwriting their information with another if they are entering a contribution on another person's behalf. I would recommend leaving it there to avoid accidental data changes. You could add some custom CSS to change the look.

As for the form itself and the pricing section you may want to review the information here which is an overview of the contribution pages: https://docs.civicrm.org/user/en/latest/contributions/online-contributions/

Also reviewing the following two sections on profiles & price sets can be helpful.

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

Price Sets: https://docs.civicrm.org/user/en/latest/events/complex-event-fees/#price-sets

Hope this helps.


Geocoder error in log but no geocoder configured or wanted

You probably had it set to yahoo at some point, and then when yahoo was removed somehow the setting didn't get blanked out, so it's looking for the yahoo code files but they aren't there anymore. Did you try just re-saving the page at Mapping and Geocoding Providers with none selected? That should clear it.


How to generate a report excluding recurring contributions?

ReportPlus (https://civicrm.org/extensions/reportplus) is worth looking at.

The included template report for 'Contribution Matrix Plus' definitely has a filter for 'Contribution is Recurring? - Any, Yes, No' already and I suspect some of the other templates will do too.


Custom Fields not importing into contacts database

Two things:
* "DB Error: constraint violation" isn't enough information to troubleshoot.  If you get an error like this, turn on debugging and backtrace:  Administration menu > System Settings > Debugging and Error Handling.  Posting the debug info and a backtrace greatly increases others' ability to help!
* What you're describing is a known bug:  See here.  Unfortunately, no one who's affected this has stepped up yet with a fix, or funds for the core team to fix it.

To give the usual pitch:  CiviCRM is free to use, but not free to write.  If you're making part of your living from CiviCRM, please consider being part of the community of folks who either fixes bugs or pays people to fix bugs.


we support a client doing Tour stuff for a theatre company. we/they manage their process via Activities and (drupal) webforms. so someone makes an enquiry, that creates an activity with custom field storing all the necessary goodies. since it sounds like you are not dealing with the registrations perhaps consider this approach rather than Events or Bookings


Civivolunteer Declaration of CRM_Volunteer_Permission Line 221 ClassLoader.php

Its a compatibility issue of Civi-Volunteer extension with latest version of CiviCRM. The new version of Civi-Volunteer is still not available but this issue is already fixed in code repository. You can apply patch from here.

Cheers

Pradeep


Add a membership to a person with an other than default company

This was too long to be a comment.

Are these people joining up for themselves on your public web pages, or are they being signed up as members by office staff using the "back office" pages?

Also a person has to choose the correct membership type to begin with. If a person is already a member of your default organisation then they will have to join again as a member of a different organisation.

Have you read the Membership section of our User and Admin guide, in particular the chapters online membership and sign up, manual entry of memberships and membership price sets


Email-to-activity processing: how to ignore cc

You can ALMOST do it with hook_civicrm_emailProcessorContact, but you don't know at that point which ones are cc's.
But you might be able to do it with hook_civicrm_emailProcessor because there you know which are cc's, except you only have their email not the contact_id. So I admit this is awkward but you could do something like:

For each of the cc's, look up the contact id from the email address the same way the email processor does - CRM_Contact_BAO_Contact::matchContactOnEmail($email, 'Individual')->contact_id
The activity_id should be in the $result param in the hook.
Delete the corresponding entry in civicrm_activity_contact. (If they were listed both as a To and a Cc you might need to get a little fancier.)


"Created by" field of CiviMail pulls the name of the latest subscriber

CiviCRM 4.6 has not been supported for some time. It has known security issues and PHP compatibility issues.
There may still be people in the community with CiviCRM 4.6 sites who can assist in troubleshooting but you should absolutely raise within your organisation that they should be upgrading CiviCRM to a supported version.
The end of life for CiviCRM 4.6 and 4.7 was announced on 2018-12-02 here: https://civicrm.org/blog/josh/extended-security-release-update


Strange consistent log notices. Where do they come from?

Since it's coming from include_once I suspect you have two civicrm.settings.php files.

The correct location is sites/<default or example.org>/civicrm.settings.php

If there's a file in sites/civicrm.settings.php, rename or remove it and see if that ends the errors.

--

EDIT: OK, having reformatted your question I can see the file path isn't actually sites//civicrm.settings.php ... StackExchange was hiding your sites directory because of the angle brackets.

SO - either you have two files (eg sites/default/civicrm.settings.php AND sites/example.org/civicrm.settings.php) OR your site somehow include_once's it after it's already included (?).

Let's use grep to look for files which define that constant:

grep -riE '^define.*CIVICRM_MEMCACHE' /path/to/site/root

If that identifies multiple files with this constant defined, then you probably want to eliminate one of those files. If it only locates a single file, then you may need to dig further to identify why that file is being included twice ... especially when the second time, it's being included using include_once :)


How can I skip display of repeat events on the manage events page?

You need to add some custom code via extension to hide some rows on manage event page. Some quick thoughts are -

Override templates/CRM/Event/Page/ManageEvent.tpl file and hide the rows having repeating text on it via js or using some tpl if condition.
Use hooks to modify the template variable $rows which is printed on the page. Some hooks that you can check is hook_civicrm_buildForm, hook_civicrm_alterContent, hook_civicrm_pageRun, etc. See the list at https://docs.civicrm.org/dev/en/latest/hooks/list/


If you wish to uninstall Civicrm from your wordpress - then uninstall Civicrm from wordpress plugin list - that should do the work

later you can delete the Database and also CiviCRM folder from your plugin directory.

I guess this helps - Thanks !!!


Is it easy to upgrade CiviCRM using drush?

To answer my own question, it is possible to update CiviCRM with drush but this isn't completely straightforward either.  For the benefit of others I post the steps I took below.
These steps must be executed in the root directory of Drupal:

put the site into maintenance mode: drush vset maintenance_mode 1
clear all caches: drush cc all
take a full backup of site and test that this works on a development server
upgrade CiviCRM: drush cvup --tarfile=<path to tarfile> --backup-dir=<path to backup dir>
upload the latest version of the localisation files and extract to sites/all/modules/civicrm/l10n
delete contents of sites/default/files/civicrm/templates_c/
take the site out of maintenance mode:drush vset maintenance_mode 0
clear all caches: drush cc all

Notes:

I was upgrading from CiviCRM 4.6.6 to 4.6.7.  If you are upgrading from an older version you may find that there are more steps.
The first time I tried to upgrade at step 4 this resulted in an error 'Your database has already been upgraded to CiviCRM 4.6.6' (note that I was trying to upgrade to 4.6.7). Repeating this step resulted in success. This bug appears to have been fixed.
It may be easier to manually delete and replace the civicrm folder as Laryn suggests.
I'm not sure if step 6 is really necessary.


Target emails based on contacts near a postal code

See https://docs.civicrm.org/user/en/latest/the-user-interface/searching/#proximity-search then from the actions dropdown create a group or smart group out of the results and use the group in your mailing.


upgrade of civicrm fails with parse error

It sounds like your server has php 5.x. You need to use php 7.x for recent versions of CiviCRM.

See https://docs.civicrm.org/sysadmin/en/latest/requirements/#php-version


Can I update the id of an existing OptionValue?

As said by Jitendra, you cannot update the id via CiviCRM api. The id in civicrm tables are autoincremented and are referenced at many places. If you still want to take risk than you can run a sql query in mysql to update the id of required row in civicrm_option_value table.


is it possible to switch languages on a page manually?

This is done by appending &lcMessages=fr_FR to the URL (where fr_FR is the desired language code).

When multiple languages are enabled, there is a language switcher block that becomes enabled. What threw me off is that in Joomla that is a fixed block in the admin interface left sidebar -- but is not available to the public side of the site. In Drupal it is a block, which is more configurable. But all the language switcher does is reload the current URL with the appropriate language value.


It sounds like you might be getting affected by this switch to require the mysqli extension: https://civicrm.org/blog/totten/psa-please-verify-php-extension-mysqli


cannot see default civisualize displays in 4.6.10

check if you have any error message, eg about a missing d3 object

your error is most likely that the url for extensions isn't properly configured, so all the javascript needed to get civisualize working properly isn't there.

if you have firebug installed, or other developer extensions, you should see-in the net tab- that it's looking for the needed javascript at the wrong place


Have you tried clearing all Drupal caches then running update.php for Drupal? This fixes views for me


Without seeing some of the actual file that is being imported, it is hard to say for sure. But my guess is that birth date field is an actual date field? And if so, it needs to be formatted as a date and on the first import screen you have to tell Civi how it is imported.

The error file that you can click and download will give you more information, as it will tell you what field(s) are the problem.


Its a bad idea of upgrading as uninstall and install new version of extension. You can upgrade the extension either one of the following two ways:

If the extension is listed under CiviCRM extension page with auto-download as true then under CiviCRM extension page of your site you should be able to see an option for updating the extension(if option not available than make sure you have Resource URL set for extension correctly, CURL, WGET, ZIP extension installed on server).
You can also upgrade the extension manually by replacing the extension folder/files and then visit CiviCRM extension page in your site and click on refresh button. If the new extension requires db changes than you will be prompted with an option on top right of the browser to run db upgrade. Run the upgrade and its ready for use.

CiviCRM stores extension settings in civicrm_setting and civicrm_managed table. But some extension have their own install code to store data in various table, uninstalling the extension will lead to loss of such data as incase of mosaico extension. It is recommended to follow upgrade pattern for upgrading any extension.

Note: Always take backup of db and files before performing upgrade.

HTH

Pradeep


$participant_status_id shows previous value in email template

This was posted a while ago, but I thought I should post the solution I finally found to the problem (which still exists in my version 4.7.29 install)

The solution to this problem was an API call.
While the value of $participant_status_id shows the value PRIOR to update, with this Smarty code added somewhere near the top of the template:

{crmAPI var='partinfo' entity='Participant' action='get' event_id=$event.id contact_id=$contactID}
{foreach from=$partinfo.values item=participant}{/foreach}</p>

I can then use the variable $participant.participant_status_id which will contain the correct status value reflecting the update made in the "Edit Event Registration" screen.


Testing new site (not secure yet); using Search/Contact switches to secure url

Three things to try, in this order:

Administer menu » System Settings » Resource URLs.  Ensure "Force Secure URLs" is set to "No".
Clear cache and templates_c.
Rebuild the menu:
 http://<wordpress_site>/wp-admin/admin.php?page=CiviCRM&q=civicrm/menu/rebuild&reset=1


CiviEvent Cannot Find Event/Register Page

please try to update civicrm to latest version - I did made a quick test and it works correctly displaying the Thank you page

Even after updating, if you are getting the error message then please let me know the payment process which you are using so i will give a quick test


How can I deal with a missing or corrupt binary ("advanced") log table?

As of CiviCRM 4.7, you can fix this by installing any extension; see CRM-15078.  Schema differences are fixed on extension installation.

If you are on an earlier version of CiviCRM, there's a trick you can do.  Edit the PHP for a page that doesn't normally get used - I like the API Explorer page (CRM/Admin/Page/APIExplorer.php).

Right after public function run() {, I put:

$temp = new CRM_Logging_Schema();
$temp->fixSchemaDifferences(TRUE);
echo "Binary log schema differences are now fixed.";
die;

Once I get back the "now fixed" message, I remove the code from the page and everything works.


Is it possible to print badges with priceset fields?

You could use hooks to create custom tokens:

http://wiki.civicrm.org/confluence/display/CRMDOC/Customized+(and+Custom)+Tokens

Or you can see if the Fancy Tokens extension adds the tokens you need:

https://civicrm.org/extensions/fancy-tokens


Payment processor, avoiding payments being rejected due to 'transaction is a duplicate'?

It has been confirmed by @petednz and by testing without the 'Separate membership payment' option, that unsetting this option resolves the 'transaction is a duplicate' error.

In our case the membership types were moved out of the form into a price set.


One option that wouldn't need any custom code would be to store phone numbers in custom fields instead of in the normal phone fields. Then you can have whatever fields you like for each phone number (phone type, notes, etc). You can set the fieldset to be default open on the contact page, so it would be fairly visible. Otherwise, you'd need to find someone to code this up for you, I'd think.


Auto save mailing editing template in Mosaico

Changes to the mailing are saved automatically (groups, subject, etc), but changes to the content (i.e. changes that you make in Mosaico) aren't saved automatically. So anything you change while in the Mosaico editor (with the Mosaico logo in the top left) isn't saved. It has always been this way.
It would be great if there was an autosave feature.


Those tables are for custom data. CiviVolunteer uses standard CiviCRM custom data tables (created in the normal way, just as you would create custom fields) so that error is rather unusual. Was the site migrated from one server to another?


I'd say best to stick with where Civix (aka Tim) says it should go! (i.e. no subdirs) - and note that Civix can help you create the page:

https://wiki.civicrm.org/confluence/display/CRMDOC/Create+a+Module+Extension#CreateaModuleExtension-Addabasicwebpage

To generate a Page:

me@civisys:/home/me$ cd /var/www/extensions/com.example.myextension
me@civisys:/var/www/extensions/com.example.myextension$ civix generate:page --help
Usage:
 generate:page className webPath

Arguments:
 className  Page class name (eg "MyPage")
 webPath    The path which maps to this page (eg "civicrm/my-page")

me@civisys:/var/www/extensions/com.example.myextension$ civix generate:page Greeter civicrm/greeter
Write /var/www/extensions/com.example.myextension/xml/Menu/myextension.xml
Write /var/www/extensions/com.example.myextension/CRM/Myextension/Page/Greeter.php
Write /var/www/extensions/com.example.myextension/templates/CRM/Myextension/Page/Greeter.tpl


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

You can do this with Price Sets. I'll document the entire set up:

Go to Administer -> CiviContribute -> CiviContribute Component Settings
and check the box Enable Tax & Invoicing (Tax = Sales Tax; Invoicing you get as a bonus)
Go to Administer -> CiviContribute -> Financial Accounts
and create one Financial Account for each Sales Tax Rate

Ignore Tax-Deductible - it is not related to Sales Tax; it potentially could be used to track whether monies are deductible for Income Tax purposes but I don't recommend it [there are other ways to track that; will document that at some point]. Click Is Tax -> (Tax = Sales Tax) and enter the Tax Rate right below it.

Repeat until you have the 3 Financial Accounts needed (3 different Sales Tax rates):

Set up Financial Types -> And associate each one with a one of the Financial Accounts we just created. Note we can add a 4th one [for out of Country residents] - i.e. with no Sales Tax.

Next are Price Sets - create a Price Set - for each Membership Type/Sales Tax Option - Yes that's a lot of Price Sets. Let's look at one: in the Maritime Provinces the Sales Tax is 15% -> so we need to create a Priceset that has a Line Item that hooks up to the Financial Type that has the 15% Tax Rate associated with it:

Looking at the Individual Price Fields:

Putting it all together - in Back Office -> from a Contact Summary record -> Membership tab -> Add Membership or Create Credit Card Membership

And selecting that Priceset results in the correct Amounts


I believe you cannot set id to a button using php however you can define your own class for the button and use JS to set the id for that class.

Here is the snippet to add class for button

$this->addButtons([[
  'type' => 'next',
  'name' => E::ts('Next'),
  'isDefault' => TRUE,
  'class' => 'custom_class', //adding class for button
));

HTH

Pradeep


Events 'missing' after upgrade to 4.7.19

There is now an open issue and fix for this: https://issues.civicrm.org/jira/browse/CRM-20549


Joomla release 3.7.2 appears to have broken the menus

I'm curious if you've checked the civicrm log file. Might help to confirm that it isn't reporting any problems due to permissions. Other than that, might want to take a glance at https://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location. Its possible you may need to rebuild the menu for some reason. I haven't updated to 3.7.2 yet, so I can't confirm this issue myself.


How to get the value of a disabled form field in webform civicrm?

Unfortunately it's a limitation of the Webform module (not specific to Civi) that hidden fields cannot be accessed as tokens or from hooks. They might be available in the $_POST superglobal, but only immediately after submitting page 1 (e.g. not after returning to page 2 from page 3, or from a saved draft, or from reloading page 2 with validation errors). Since you are writing php code, consider using the CiviCRM API to fetch this info instead.


Is there any way to switch off e-mail notifications in CiviCase?

AFAIK you can only switch off for email notifications for all activity mails, not specifically for case activities only.


CiviMail: Send to Individual Contacts (not just Groups)?

Not exactly what you want to do, but if you install the Resend Mailing extension, you can select one or more contacts from search results and use the action drop down menu to resend a mailing to those specific contacts.
Alternatively, you could just add the new recipients to the original group you used for the mailing and resend the mailing, subtracting the recipients of the original mailing and thus only sending it to the new group members.


OK, it looks like it's a problem with Joomla 3.9.3. See discussion here. Fix should be included in Joomla 3.9.4, which is out on 12th March.


I don't quite understand and am unclear whether you tried this yourself or not. I presume i don't understand, but here are a couple of factors.

1/ You should not be able to set up a Contribution Page with no options for specifying the amount.

Contribution Amounts section enabled
If you want to enable the 'Contribution Amounts section', you need to either 'Allow Other Amounts' and/or enter at least one row in the 'Fixed Contribution Amounts' table.

2/ You should not be able to set up a Contribution page without offering either Payment Processor or Pay Later

Sorry but we are not able to provide this at the moment.
A payment processor must be selected for this contribution page (contact the site administrator for assistance).


Try below code:

  CRM.$(function($) {
    $('#billing_country_id-5').change(function () {
      var countryId = $(this).val();
    });
  });

HTH

Pradeep


Baffled by Views database error on new install

Try adding cms integration in your backdrop settings.php

CiviCRM >> Administer >> System Settings >> CMS Integration.

Step by step documentation : https://docs.civicrm.org/sysadmin/en/latest/integration/backdrop/views/


It looks like this is a side-effect of a custom Module we have installed for something else (still related to Events).  Consider this question closed.


I thought I had tried the obvious but must have had a typo.  It is there but it isn't listed in the list of tokens. It's {contribution.financial_type}.  Should it be listed?  If so, it looks like a bug.

It didn't take much make it show.  In my test version I hacked SelectValues.php and added financial type to the contribution token array.  If I looked at the latest versions of that file it doesn't seem to be there either.


Welcome to CiviCRM SE!

If I understand your scenario correctly there  are three time slots and you want participants to choose a session in each one. You can accomplish this with a single price set and a price field for each time slot using radio buttons for the line items (session options). You can set Max Participants for each line item. Once that is reached the line item option will become unavailable.

The Extended Reports extension has a line item report which is handy for getting counts per session.

Hope this helps.


Is Civicrm 4.7.20 compatible with PHP 7.? - only using core components and one extension, cividiscount

If you look at the release notes for CiviCRM you will see various comments about fixes for PHP 7 / 7.1 / 7.2 / 7.3 from around 4.7.14 onwards. Some of those are wide-ranging or critical fixes, others just affect a specific function.  So whether any particular version of Civi works under a specific version of PHP depends to some extent on which bits of Civi you are actually using.

If your site is as simple as it sounds, I'd just crack on with upgrading both Civi & PHP!


How can I submit WordPress forms to a REST URL?

You can use Contact Form 7 and the Contact Form 7 CiviCRM plugins for wordpress to POST your forms directly to CiviCRM's REST API. There is a blog post by Erik Hommel on CiviCRM.org that explains how this works.


Importing localized content to Civicrm database

You need to have (first name and last name)  or (email) columns not empty data. Also make sure your csv has character set to Unicode UTF-8 and is separated with correct delimeters


Different Contacts of same child Group in multisite

We totally gave up on using sub-groups with the CiviCRM Multisite. This is too bad but really this seems to be far too complicated and very risky. That would also damage the work of people using different sites.
We use only the Domain Group S-group for Site S to be sure we have the right contact in the right site.


Fetch data over the web: curl, file_get_contents or something else?

I'm unsure what's recommended, but there are several patterns (at least) through the codebase:

CRM_Utils_HttpClient, used in core functionality like system checks. This has test coverage!
PHP curl, common in the payment processors.
PEAR HTTP_Request, in older code like geocoders.
Occasionally file_get_contents() to switch things up for fun?

I like using Guzzle in extensions - but I'm uncertain what would happen if CiviCRM core now decided to bundle a different version of Guzzle to the one used in my extensions?


CiviCRM emails not sending with attachments

The attachment size exceeded the site max file upload.

Not a bug in Civi as suspected, but the error message is really unhelpful in this instance.


Notify when profile form is submitted does not work (form with attached files)

A partial answer. If you want an 'application form' then a standalone Profile should suffice. There is no reason i know of why you would need to add complexity of CiviCampaign and Petitions.


Is there CiviContribute API documentation?

I do not know what you want to achieve exactly, but the API that I use is called Contribution. It creates a contribution in CiviCRM but it does not automatically make calls to PayPal or Stripe.

And I am glad it does not because most NGO's in my corner of the world (Northern Europe) hardly use PayPal and have never heard of Stripe. They want all their payments processed with SEPA, which probably you never heard of.

Documentation on the API can be found here: https://docs.civicrm.org/dev/en/latest/api/


Why does my 'Delete Case' action in the case search report not work?

It has to do with an added custom field. See:
Its a range and an option list.
Workaround.

Go to the custom field definition (it's somewhere on cases, for techies, you can find the id in the javascript error.
Change the Field Input Type to Single Line Input Field
Now Search by Range is visible. Uncheck it.
Set the 'Field Input Type' back to the former value.
And save.

The case report should by back to normal.


Why does CiviMail stop sending after the first 1,000 messages?

Did you setup the cronjob?

http://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs

It's the usual behavior of civicrm to send 1000 mails per cronjob. After that it waits x Minutes and sends the next batch of mails at the next cron run.


How can I alter DataTable defaults / attributes without overriding core files?

You can alter any DataTable table through it's API as long as you are in Civi's jQuery context (CRM.$)

You could use hook_civicrm_alterTemplateFile or hook_civicrm_buildForm for example to load your script:

Civi::resources()->addScriptFile( 'my-extension', 'js/alterDataTables.js' );

Then in your js:

// alterDataTables.js file
CRM.$( function( $ ) {
  // get and itarate over all dataTables
  $( '.dataTable' ).map( function( index, table ) {
    // get dataTable instance
    $( table ).DataTable()
      // set page length
      .page.len( 2 )
      // draw table
      .draw()
  } );
} );

The above example was given to me so may have worked in some places e.g. when the dataTable is available on page load. For my use-case I needed to work with the 'Relationships' tab tables when viewing a Contact. In this case, $('.dataTable') would select nothing unless I responded to the ajax event, in which case I also needed to add once() to avoid an infinite loop of redrawing tables:

CRM.$(function($) {
  $(document).ajaxComplete(function() {
    var dt = $('.dataTable');
    if (dt.length) {
      $('.dataTable').once().map(function(index, table) {
        // get dataTable instance
        $(table).once().DataTable()
          // set page length
          .page.len(50)
          // draw table
          .draw()
      });
    }
  });
});


Create new contacts every time someone makes a contribution ( with duplicate emails )

Perhaps the answer is to attach the custom field to Contributions rather than Contacts? This way the same contact could make multiple contributions and designate on each contribution (rather than a field associated with their contact record directly) what the designation is.


I had the same issue. After enabling debugging I saw that the civicrm_volunteer_project table was missing the title field.

There is an alter query in this file that did not run correctly for me as it failed on removing the foreign key.

extensions/org.civicrm.volunteer/sql/volunteer_upgrade_2.0.sql

Modified version (though you should run your own tests):

ALTER TABLEcivicrm_volunteer_project
ADDtitleVARCHAR(255) COLLATE utf8_unicode_ci NOT NULL
  COMMENT 'The title of the Volunteer Project'
  AFTERid,
ADDdescriptionTEXT COLLATE utf8_unicode_ci
  COMMENT 'Full description of the Volunteer Project. Text and HTML allowed. Displayed on sign-up screens.'
  AFTERtitle,
ADDloc_block_idINT(10) unsigned DEFAULT NULL
  COMMENT 'FK to Location Block ID'
  AFTERis_active,
ADD CONSTRAINTFK_civicrm_volunteer_project_loc_block_id
  FOREIGN KEY (loc_block_id)
  REFERENCEScivicrm_loc_block(id)
  ON DELETE SET NULL,
ADDcampaign_idINT(10) unsigned DEFAULT NULL
  COMMENT 'The campaign associated with this Volunteer Project.'
  AFTERloc_block_id,
ADD CONSTRAINTFK_civicrm_volunteer_project_campaign_id
  FOREIGN KEY (campaign_id)
  REFERENCEScivicrm_campaign(id)
  ON DELETE SET NULL,
MODIFYentity_tablevarchar(64) NULL,
MODIFYentity_idint(10) NULL;


Assuming you're adding the Civi content via a WP page (Pages > Add Page, use the CiviCRM button to add your chosen functionality), under Page Attributes there should be the option to select a template.  Depending on the theme you've selected, there may be a Full Width option.  If not, you may be able to add that option to your theme.

~ Lesley


Do volunteers have to be associated with an event?

We have:

created "Role" as a contact subtype
created a contact record for each role a volunteer can fill.
created a relationship type 'holds role/role is held by'

We then establish  the 'holds role/role is held by' relationship between volunteer and role.

This lets us find all volunteers who hold any or a specific role by filtering on relationship when doing an Advanced Search.

You may still want to use the relationship "volunteer" as described by Squishus Tyrannicus as you may have volunteers who are not assigned to a particular role and you will need to be able to find them.

Working with two relationships can be difficult however, so instead you could create a individual subtype called "Volunteer" or even a "volunteer" tag to help you find all volunteers, even those without roles.


How does one flush the non-database cache (such as memcache) from CiviCRM code?

Currently the function CRM_Core_Invoke::rebuildMenuAndCaches does not flush the memory caches, even though it will rebuild the database cache, menus and sessions. In order to also flush the memory caches you need to also call: CRM_Utils_System::flushCache( ); (This was confirmed by Lobo but I think it needed to be written more explicitly as an answer and not as how things should be.)


How to send "thank you" emails to donors?

Although it will not be a completely clear-cut solution without any work, you could try to use CiviRules? It allows you to specify sending a email to the donor 1 week after the actual receipt of the contribution. You can specify the template, which will probably require some work to do exactly what you want it to do, but it might be worth a try?


What tables are used for civicrm reports?

4.2->4.7 is a huge upgrade. Swathes of tables - including Activities and Settings - have changed. If you have any custom reports or extensions these definitely will need to be upgraded without a doubt.

This could be caused by a number of things.

Is this all reports, or just some? What are the names of the failing reports?
Please could you provide a screenshot?
Have you looked in the CiviCRM error logs and the Joomla! logs?


Notification for failed payment transaction

The answer depends on the Payment Processor you’re using. We have that option in the iATS Payments Extension and we can do that because its recurring payments are initiated/controled from within CiviCRM.

If you’re using another payment processing that processes a recurring contribution off-site and then notifies CiviCRM you will likely have to get into that Payment Processor’s admin/config and look for such a notification option.


Thanks for bringing this to a wider audience!  I just confirmed the issue on the demo site, which is the first step toward determining if this is a bug for everyone (see Reporting a Bug).

I've confirmed it's not an AJAX error or a problem with how the URL is constructed, which were my first guesses.  I'll take a few minutes to poke around in the code, and if the problem's not obvious I'll report it upstream at https://issues.civicrm.org.

UPDATE: The problem's not obvious to me, but I know there are some bugfixes in process for this set of new functionality (CRM-16353)


What distinguishes a member from a non-member?  Is it basically being on your mailing list?  If so, you might consider not using CiviMember at all.

The paradigm of membership in CiviCRM is a dues-paying membership with a term.  While there are features to handle variations on that (free memberships and lifetime memberships, for example), there isn't much reason to go through the trouble of setting them up if they're both free and lifetime.

Instead, consider setting up a group.  You can have a profile add people to the group, you can search for everyone in the group, and you can mail to the group.  There's even the history of when someone was added to the group, if that matters to you.

The word "member" trips users up a lot, and it's common to see people think that CiviMember is the way to handle their free forever memberships in CiviCRM.  You can just turn it off by going to Administer > System Settings > Enable CiviCRM Components.


Date field format changes when set to view only

It sounds like a bug, it should take the settings for the date/time, sounds like it does not.


Event registration allows free registrations (but shouldn't)

A way to do this would be the following:

Enable in the Event Configuration the option "Register multiple participants?"
Use in the priceset a radio button for child/adult. You can make it required and add a different price for each.

You will have the option to set a different "Profile for Additional Participants", so you can collect different data for the person entering the form compared to the other participants.

That way you know who will attend the course and know per registrant whether it is a child or parent.


Member reports javascript broken after update

OK, my bad. I had to update the nz.co.fuzion.extendedreport extension, too.


New 'Contact Exported' and 'Activity Exported' activity

The latest version of the GDPR extension does this. It records when contacts have been exported for audit purposes.


This is a known (fixed) bug, CRM-21468.  You can apply the patch manually if you feel comfortable; otherwise, it will be fixed in CiviCRM 4.7.29.


How can I set the maximum number of processes?

I don't know of any way to limit the processes. Importing is a large task since it's hitting so many fields, tables, etc. That means a lot of processes regardless of how many records you're importing. Shared servers often times have too low of limits to be able to fully use CiviCRM without running into issues. It's why we finally ended up just getting our own server, setting it up so that its minimums would still be more than enough for Civi, and then using it for all our sites.


Is command-line upgrade broken on CiviCRM 4.7.7?

Someone actually provided the answer to another person on the CiviCRM chat channel, so I'm posting it here:

<juri_> "You have requested a non-existent service 'sql_triggers'."
<juri_> anyone care to take a guess? this is civi on drupal 8.
<mollux> juri_ clear the CiviCRM cache, had the same issue yesterday


The path civicrm/showevents does not seem to be a part of core. I think you have an extension enabled on your site which is creating a problem.

Disable or uninstall Event Calendar(com.osseed.eventcalendar) from Extension page civicrm/admin/extensions?reset=1.
If you can't access the extension page, try disabling this using cv command OR directly modifying civicrm_extension table in your database. Set is_active value to 0.

$ cv ext:disable com.osseed.eventcalendar

Clear cache OR rebuild the menu using civicrm/menu/rebuild?reset=1.


Fixed - Why can't I display some Civi contact fields through CivCRM Entity in Drupal 8?

Graham - I've reproduced that. Not seeing the date of birth field either. Seeing lots of other dates though. Not sure what's going on. Could you please open an issue here: https://github.com/eileenmcnaughton/civicrm_entity/issues

Update: this is now top of the list for D8CE.

Updated: this is fixed now as of https://github.com/eileenmcnaughton/civicrm_entity/pull/190


Check the URL before you select the Administration Console link.  Does it have a www or no www?  Is it http:// or https://?  Next, check the URL of the error page for the same things.  Is there a difference?  If so, that's your problem.  Check here for a solution.


How to create a non report based dashlet

If you're on Drupal, you can use the civicrm_views_dashlets module for a no-coding solution.  Not only can use create a view that shows a single page (which is editable like any other page), but you can use Views to show more complex content.

For instance, when I worked on a CiviCRM-based SaaS a few years back, we created our own "news" dashlet by publishing an RSS feed from a central site, which was picked up by the Drupal Feeds module to populate the View.


Yes I think you're right. This one seems to be an issue with the combination of "Merge All Contacts with the Same Address" and using Selected Fields instead of primary fields.

I'll put up another ticket: https://lab.civicrm.org/dev/core/issues/1302

Fix looks like it will be in 5.18.2
https://github.com/civicrm/civicrm-core/pull/15452


When new members sign up an email gets sent to filter.select@gmail.com

Unless you some kind of customization that sends out those emails, I can only think of one place should have a look at:

go to "Contributions" --> "Manage Contribution Pages"
next to the contribution page in question, use the link "configure" and then "Thank-You and receipting"
tick the box "Email Receipt to Contributor" (if not ticked already) and check if "filter.select@gmail.com" is in the cc or bcc field.


How do you sync developments to a live site?

So a few things, if you turn on logging then you'll get a full timestamped history of changes to all tables in the database. If you had this on both environments then you would now be able to see all the changes.

However what your describing is a workflow issue, i.e. having changes happening in two environments without being clear on how changes will be released from Dev -> Prod seems like an oversight and not one CiviCRM will solve (Sorry - not trying to be rude).

In our pre-prod implementations we always define where customers are doing their prod configurations, where we're doing our dev and which environment is for playing. This way we have a clear release process from Dev -> Prod. We also introduce staging environments at the right time.

Hope that helps!


Civibuild Install - Unable to connect to github.com

From this line,

  bower ECMDERR       Failed to execute "git ls-remote --tags --heads git://github.com/totten/angular-jquery-dialog-service.git", exit code of #128 fatal: unable to connect to github.com: github.com[0: 192.30.252.123]: errno=Connection timed out

Check that you have installed git? if not use " sudo apt-get install git" before running the civibuild install command since the command has to fetch from the repository on github.

Also the line

  fatal: unable to connect to github.com: github.com[0: 192.30.252.128]: errno=Connection timed out

shows that there is a problem with the connection you can first run " ping google.com" to test for the connection and then run the civibuild command again.


It's defined in CRM_Core_Task, not CRM_Case_Task, so that reference in buildQuickForm maybe should be CRM_Core_Task::TASK_DELETE. I'm not sure off the top of my head how php handles static inheritance for constants. It might be a difference with your version of php, since it seems to work on dmaster.demo.civicrm.org.


Create a group of your donors, and then run a Custom Search of Include/Exclude.

One option is to create a group (preferably a smart group) using "Advanced Search" or "Find Contributions": the only search condition is a Contribution Status of Completed.  This will put all of your donors into a group (if you use a smart group, the group will continually be updated).

Then use a Custom Search that comes with CiviCRM - Include/Exclude.  Do a search that EXCLUDES the group of donors you just created.  You now have your constituents who have not yet donated.

Additional: From that Excludes custom search, you could then create another smart group -- this time, it would be a smart group of those people who haven't donated.


Recording Separate Contributions in a Membership Webform

Webform-CiviCRM integration was designed to be able to sign up multiple members plus collect a contribution. It will save a single contribution record containing a separate line-item for each (2 memberships + a donation = 3 line items).

There are some key settings that are required:

Contributions (in Webform CiviCRM section): Should be set to your Donation Contribution page and not your Membership Contribution page if you created one
Memberships Tab (in Webform CiviCRM section): Should be set to one

With those settings above and any other data that you would like to collect you will be able to receive a donation and membership purchase on the same transaction.

Adding some examples:

So on a contribution level these look like Donations -> so you must pull LineItem reports; this one is a good one (from Fuzion's Extended Reports): civicrm/report/price/contributionbased?reset=1

Adding some more screenshots:

Contribution page config (also enabled a Payment Processor); but I don't even have Membership section enabled here;

Webform CiviCRM config [I've hidden Membership type as there really is only one];


Dedupe Rules to import contacts without email addresses *UPDATE*

In my demo I see that there are three reserved rules for individuals. Reserved means that they cannot be deleted.

When I click the question mark I read:

  The 'Unsupervised' rule for each contact type is automatically used when new contacts are created through online registrations including Events, Membership, Contributions and Profile pages. They are also selected by default when you Import contacts.

I tried to set all reserved rules and my own rule too general, but at import it expects at least one Unsupervised rule active. So I changed my custom rule to Unsupervised and also choose it at import.

Then the dudupe seem to work at import. When set import to Update and it did update, but when I tried Fill, it did not do what I expected. My data:

Dedupe rules (all made general except my custom rule):

My custom rule:

With Fill it would import the first but not add the second phone number, with Update it would import the first and update it with the last, leaving it the the last phone number.

When in my project I tried to use the import feature of CiviCRM I concluded that it is too limited to do what you intend to do. I decided to ignore it and make my own import module in Drupal and using the CiviCRM API calls and the Drupal PHPExcel integration module. PHPExcel reads spreadsheets into a PHP variable and then with dedupe check turned off you can apply your own logic and criteria.


SOLVED is Civicrm compatible with Litespeed technology?

I am using the webhosting service of Rochen, and they use a LiteSpeed Web Server.
Civicrm runs inside a Joomla 3.7.5 website quit okay. (The the current Joomla version of 3.8.2 and Civicrm do not work together okay, because there are still several issues due to changes in the Joomla 3.8.* versions.)

So as to your main question: Litespeed can be setup to accommodate Civicrm.


Found. It came from the overlay module in Drupal :-(
I needed to deactivate it.


How do I set access control so I can get Batch entry? It's not showing up

So Civicrm has two main ways to grant or restrict access:

permission: it's more "high level" and it's about granting access to big features, eg to administer events or view anything about financial contributions
Access Control (ACL): it's mostly so a group of user see only a subset of your contacts, for instance the media people only see the journalists

In your case, it's most probably a permission issue, not access control one. Where you set these permissions depends on your CMS, because it's related to the users and their roles.

There is a rather long list of permissions you can grant, including a few about batch (eg. "CiviCRM: create manual batch, Create an accounting batch", check what applies to your case for this user.

If you don't see a change in the menu when you grant extra access, you might need to logout/login so the new rights are taken into account


drush civicrm-sql-dump dumps the drupal database - how do I get it to dump the civicrm database?

One answer to your question is that you can use the sql-dump drush command to dump your civicrm database by using this option:

 --database : The DB connection key if using multiple connections in settings.php.

For that to work, you'd have to edit your drupal settings file to include something like:

$database['civicrm'] = array('default' => array('driver' => .. etc.

A second answer is that the civicrm-sql-dump drush command does not use the drupal settings file, but the civicrm settings file, to get the db name and credentials, so the fact you're getting the same dump from both suggests that you might not be using a separate db for civicrm as you think. Maybe you're looking at the wrong civicrm.settings.php file?

It does look like you want to revert to the 6.x drush. I haven't ever seen the behaviour you describe, but I tend to use bash scripts for mysql backups anyway, to keep things simpler.


How can I improve the performance of the change log table?

If logging is on then results will be retrieved from the log_xxx tables not civicm_log.

Normally these tables use the archive engine - which is not indexable. We have in some cases selectively converted these to INNODB & added indexes

Archive tables are supposed to be quick to write to and slow to read from. They are also non-transactional - which means that if a rollback happens for a given transaction the archive table record will not be rolled back (on rare occasions this has helped us with forensics)

EDIT: also take a look at this extension I wrote https://github.com/eileenmcnaughton/nz.co.fuzion.innodbtriggers which converts log tables to innodb automatically and this  blog post for more details: https://civicrm.org/blog/eileen/who-did-what-when


To the best of my knowledge, CiviCRM does not work if WordPress is installed in its own directory rather than the default location.  I have not tested this recently, but

I know it did not work in the initial versions of CiviCRM for WordPress,
I haven't heard about any change to this, and
I haven't had any reason to have WordPress in its own directory.

Notes in CRM-16421 also indicate that it's still an issue as of 4.6.

My advice is to get WordPress back out of its own directory and try again.  It may not be your preference, but it's what works.


Disabling the activity is what you want. That removes an activity as a live option moving forward, but maintains the historical data.

Deleting the activity removes it as an option and erases the historical data.


Specified return fields in contact get do not get returned

If include 'state_province' in return param it should return you state_province_id, state_province_name and state_province.
For geofield1 you need to use 'geo_code_1'.
If you search for primary address in return field drop down under api explorer you should see the exact name for fields to retrieve for address.
$result = civicrm_api3('Contact', 'get', [
  'sequential' => 1,
  'return' => ["address_id", "city", "postal_code", "state_province", "geo_code_1", "country"],
  'state_province_name' => ['IS NOT NULL' => 1],
]);


It's hard to tell which version of the summary fields you are having issues with but I'm guessing it's 4.0.1 which was suppose to fix the exact same issue with 4.0.0.  It obviously doesn't. I filed another issue on github for the newest problem.

https://github.com/progressivetech/net.ourpowerbase.sumfields/issues/45

I think the fix is to change line 4 in sumfields.php

From:  use CRM_Myextension_ExtensionUtil as E;

To:    use CRM_Sumfields_ExtensionUtil as E;


The problem was resolved once I upgraded the extension to 3.3 and corrected the permissions for the extensions folder for the group. chmod -R 775 sites/default/files/civicrm/ext. After the CiviCRM upgrade, the extensions directory changed so permissions needed to be reset also.


Invalid value for field(s) : Membership Status means that the csv file had invalid options for Membership status. The import file should use machine name rather label (or hopefully membership status ID).

Here is the similar post that might help to find solution for your question.

Cheers

Pradeep


how do I set up the Moneris mpgClasses.php file to work with my wordpress install

I haven't used it myself, but a quick search pulled up this extension by Alan Dixon and this related post: Does the core Moneris payment processor work?

Also, have you looked at the documentation?

Setting up Moneris Hosted Payment Processor for CiviCRM
Moneris Configuration Guide

I hope that helps.


Error: Refund amount must equal refund due amount

Can you try to replicate on dmaster.demo.civicrm.org and if you can replicate it there please create an issue at https://issues.civicrm.org/ and assign it to me (Joe Murray)? Thanks!


How to create a free Membership sign-up?

Here's an Example of a clean FREE Membership page with no hint of needing to contribute! On the Contribution Page Config -> Memberships Tab -> make sure you select the Membership.

Note 1: you'll want to add some anti-spam control - like add a reCAPTCHA to a profile that you expose on your Contribution Page

Note 2: In Drupal we can sync Membership Type/Status -> to Drupal role - and can then create Member only content pages. Not sure if you can do that in Wordpress - but that's often our use case for a FREE Membership.


Search for cancelled Paypal recurring contributions

There are several things things at play here:

Before v 4.7, when recurring contributions failed, an installment was not created - this behavior was changed as of 4.7 as described HERE, so this explains why you aren't finding any failed contributions in your system
Using basic searches on contributions will result only in the installments (i.e. individual contributions) - not the actual subscription, so unless you edited an installment and marked the status as "Cancelled", this explains why you aren't finding any cancelled recurring contributions in your system - there is a report that will allow you to search on and view the status of the subscription itself in CiviCRM, but not sure as of which version the report was made available - check to see if you have a "Recurring Contributions Report" available to you under Administer > CiviReport > Create Reports from Template > Contribution Reports
Even if you do have this report, other than the initial creation of the recurring contribution, no further information is communicated from CiviCRM to PayPal, nor are changes to the recurring subscriptions directly on PayPal reported to CiviCRM - you would need to update the corresponding recurring contribution manually in CiviCRM to reflect the those changes (being sure not to toggle the "Notify PayPal" option when doing so b/c this will return an error since it has already been cancelled on PayPal)
There was a point in time where cancellation of a recurring contribution from CiviCRM was not communicated to PayPal, and I'm not sure if this was ever resolved, so to play things safe, if you cancel a recurring subscription in CiviCRM first and toggle the "Notify PayPal" option, log into PayPal to confirm that the corresponding recurring subscription was indeed cancelled
You need to login directly to PayPal to make changes to the payment amount, card, frequency, etc. for those to take effect - you are also able (if memory serves me correctly) to make those changes in CiviCRM, but again, these changes are not communicated to the payment processor

Hope this helps!
Tamar


Session variables destroyed while making contribution through webform in Drupal 8

I think session issues sounds more like a D8/CiviCRM configuration issue rather than a D8WFC module issue.

I just confirmed that D8WFC can do live payments (authenticated and anonymous) with iATS Payments. I'm sorry we don't use any Omnipay processors with any of our clients so I can't try to confirm your scenario. Perhaps check on Mattermost -> chat.civicrm.org Drupal channel to see if you can find others who can reproduce this. Some folks in that channel are system administrators themselves and may be able to help.

Here's an example of a live-payment -> with a Confirmation that all lands in the database using D8 CiviCRM Entity:


Long List of CiviDiscount Codes Needs Management

You can disable the codes and then sort by what is still active. I also recommend coming up with a naming convention that makes it easier to sort.

You could also set up an automatic discount for certain memberships per certain events, which would cut down on the need for so many codes.


Show CiviEvent registration details via dashboard or view?

You can use for it CiviMobile if a user who registered has a CiviCRM account.
Only CiviCRM users can login in CiviMobile. So they will see the list of events where he is registered and their tickets on these events with all information (role, price, name, status).


You would need an extension to do this.  If you don't have bookkeeping integration, it wouldn't be hard to set the payment to "Pending" after it was recorded - but if you have bookkeeping integration, this would cause headaches.  You would need to find a way to identify a payment as belonging to a membership before it was written, which will be difficult, since the normal method (finding a MembershipPayment record) isn't possible - the MembershipPayment record is created after the contribution, not before.


You could rename the activities - for example: "Medical Assessment - Type 1", "Medical Assessment - Type 2" or something more descriptive and link the appropriate custom fields to each one.


How to get over 'Failed to locate CMS...' exception on civix?

Maybe the standard wrong suggestion :-) but did you try the generate:module whilst in a subfolder of your website root?


You could have a look at whether Extended Report extension that was built by Fuzion has what you need.


I could not recreate this. The most simple solution was to make a new field and then import the old data into the new field.


Where and how do I 'check Drupal permissions' or 'set Drupal permissions'?

In CiviCRM , go to Administer -> Users and Permissions -> Permissions (Access Control) . Then , select Drupal Access Control .

You will see a long list of various options, and check boxes to enable permissions for Components, Extensions, etc for various Roles.

Scroll down the list until you see the Component, Extension etc that you have installed and enabled in the list. Then, select the checkbox to add a permission to a Role.

In the screenshot below, I've added permissions for the Administrator role for the ReportPlus extension I just added.

Save your changes, et voila! You should now see the new permissions for the Administrator role or for whichever role to which you have added new permissions.


How do I request an issue to be moved to the paid issue queue when I did not create the issue?

At this link it says send an email to info@civicrm.org: https://civicrm.org/about/core-team
It also says you can hire any of the experts.
On the particular civicase issue there are a couple tangled up issues with closed cases (https://lab.civicrm.org/dev/core/-/issues/1401) but maybe this one (which is listed in there) could be dealt with without getting too tangled. I have it on my own todo list to someday look closer at the proposal referenced in there about the more general issue, which may or may not intersect with this one.


want to change search algorithm in custom fields

For standard phone number fields, that is taken care of:

In Advanced Search, the help text shows "Punctuation and spaces are
ignored." Formatting entered in the search is ignored and the search is done on just the digits.
In Quick Search, enter just the digits of the phone number.

But your title mentions custom fields... Does that mean you have an alphanumeric custom field to store a phone number?  Instead of that, can you use the standard phone numbers with a different 'location'?  You can customise the list of locations at Administer > Customize Data and Screens > Dropdown Options > Location Types


Has the Dashboard Cache Timeout setting been moved?

This setting has been moved to each Reports(Access Tab). Major improvements related to dashlet has been done in 4.7.11 version. Hence, if you wish to change the cache timeout.

Navigate to any Reports.
Click on Access Tab.
Enable Available for Dashboard? checkbox which displays the setting you need.


It's difficult to answer your question without more details about what KIND of integration you're looking for, but I can give two answers:

If you're looking for a Learning Record Store (LRS), a native Drupal LRS exists, and CiviCRM integration for it exists too.
Some integration with Moodle exists via CiviMoodle - you can register someone for a CiviCRM event, and they're signed up for one or more corresponding events  in Moodle (with user creation if necessary).
There's also some custom integration for pulling grades back into CiviCRM from Moodle, but would need some love from a developer to fit someone's situation.


Civi 4.4.6 forms not working with WordPress 4.3.1

Turns out it was the Jetpack plugin causing the problem and not the WP upgrade. I had installed Jetpack just after upgrading in an attempt to solve a different problem (unrelated to Civi). I should have tried disabling plugins before doing the downgrade, but previously no plugins were causing problems and I'd forgotten about the addition of Jetpack.


How can I see which contacts have been assigned which roles and permissions?

Welcome to SE! The place to start is in the documentation about roles and permissions at https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/

It does depend on the CMS as Jaap says, but they are all covered here. You will see who is assigned to which role in the CMS (Its under Users in WordPress) but then you need to allocate permisssions to these rolls to control which CiviCRM features each role has. There are some more complex option too, with roles and permissions specific to CiviCRM, but you probably don't need these.


Where in the CiviCRM codebase do css and js resources get output for an AJAX url or snippet?

I haven't found the answer to this question, but I can avoid it instead.

These functions:

CRM_Core_Resources::singleton()->addScriptUrl()
CRM_Core_Resources::singleton()->addScriptFile()
CRM_Core_Resources::singleton()->addStyleFile()

all generate html that gets stored for later output, which is smart most of the time, so it can do some more processing (e.g. weeding out duplicates and/or compressing, whatever).

But if you look in the CRM_Core_Resources object, you can instead use the internal functions to generate the html and then manually add it to the html region that's going to get output in the ajax call.

Here's a patch that solved this for me, as an example.

https://github.com/iATSPayments/com.iatspayments.civicrm/commit/6441cd5dee2ee0163330cceb95b0ce4e3ae37fa8

Just adding js to the html being loaded doesn't always fire the functions that might get fired it was loaded with the original page, so you do have to pay attention to that.


Upgrade from Drupal 7/ CiviCRM 4.6.38 to Drupal 9 / CiviCRM 5.37.2

If you have a very simple d7 front end with minimum common modules than it won't be difficult to upgrade from d7 >> d8 >> d9.
To Upgrade Civi i would do incremental upgrade i.e

4.6 > 4.7(latest)
4.7 > 5.8(latest)
5.8 > 5.22(latest)
5.22 > 5.37(latest)

Would upgrade Civi first than drupal.


Outbound SMTP through Google Apps: Rejected Connection

It doesn't appear to be an authentication issue, it appears to be a network issue. Do you have a firewall on the server, or between the server and the Internet that could be blocking your outbound request to port 465?


You can click on the button to display the source code and then copy all.

Open a new template, click on the (same) button to display the source code, and paste what you have copied. Then click on the button again, and voilá, you have copied an email template!


Error after installing Civi Entity module

Part of the process that CiviCRM Entity uses to integrate is to read metadata on the civicrm API entities, and also for fields with options lists, it fetches those with an API call...
This API call :

$result = civicrm_api3('Relationship', 'getoptions', [
  'field' => "relationship_type_id",
]);

Is what is producing the warning...

I'm calling this a CiviCRM Core bug/issue..

there is an issue here, I'll update it:
https://lab.civicrm.org/dev/core/issues/268


Two events with configured PRICE - Price option is only showing on one

Found it. The option "approval required" breaks the price option.

When that option is checked, the price options are not printed on the registration page. No idea why this behaviour is standard though.

My client needs to check this option AND needs to ask about price option, so in the current civi-logic (this is becoming a peculiar word, civi-logic) he needs to add a price field in the used profile instead?


"On Behalf of" /Sender header for Emails

I'm 99% sure there hasn't been any work on this.


Okay, I'll bite, I've got a client with the same request and I'll bet lots of people would use it if it was there.

The post you reference has some code for how to create a token that can be used in manually building some html to include in your email, which in theory is all your really need.

What would be nice is:
1. A series of tokens for each of the different social media share options to simplify the civimail editor's job.
2. A test by those tokens that would hide the share links on emails that aren't configured for public archiving.

Sounds like a simple extension. Or what was your experience?

As an aside, here's what a CiviCRM competitor is offering: https://blog.aweber.com/email-marketing/social-share-buttons-in-your-emails.htm


"Expected one Contribution but found 25"

It does look like the API is called in the background anyway. That would make sense as it is the preferred way to communicate with the database. It does look like the API action 'getsingle' is used and it is receiving more than one. Can you explain a little more on which point you are getting the error?


Donor access to edit recurring donations

A friend asked for the links that are used in case they can be put in to receipt template. this is what i dug out of contact dashboard

civicrm/contribute/updatebilling?reset=1&crid=XXXX&cid=YYYY

civicrm/contribute/updaterecur?reset=1&action=update&crid=XXXX&cid=YYYY

civicrm/contribute/unsubscribe?reset=1&crid=XXXX&cid=YYYY

not sure how useful this is but wanted to paste it somewhere other than skype ;-)

--

Evan's findings.

WordPress 4.7.3 | CiviCRM 4.7.22 | iATS Payments 1.6.0

Providing a link to update / cancel a recurring donation should be included in the receipt, and it is. Sort of. From the iATS Payments 1.6.0 release notes:

  "Cancel/modify URL receipt links are wrong. This affects recurring contributions. You can manually edit the message template to fix this."

https://github.com/iATSPayments/com.iatspayments.civicrm/blob/master/release-notes/1.6.0.md
https://issues.civicrm.org/jira/browse/CRM-20401

While debugging using the Send Receipts workflow from a contribution search, it was discovered the URLs in these links are built correctly. When sent automatically from the creation of a contribution, the links point to iATS website, when sent from a contribution search they're. As such, I was able to get the URL scheme of how it should be built, see below.

civicrm/contribute/unsubscribe&reset=1&coid={contribution.contribution_id}&cs={contact.checksum}

civicrm/contribute/updatebilling&reset=1&coid={contribution.contribution_id}&cs={contact.checksum}

civicrm/contribute/updaterecur&reset=1&coid={contribution.contribution_id}&cs={contact.checksum}


Contribution Summary can't be filtered by payment method

I suggest you use the Contribution Details Report rather than the Summary Report.  In the "Columns" tab, choose "Payment Type".  In the "Sorting Tab" select "Choose a Payment Method" as the sorting method, plus any other columns you wish to sort by.

Hope this helps.


CiviCRM: how to manage several areas for the same organization?

The answer to your question depends on some of the details - but most likely you'll want to use ACLs.  See here: https://docs.civicrm.org/user/en/4.7/initial-set-up/permissions-and-access-control/.

In some cases, you may want to consider multi-site permissioning - it depends on the size of your database and how much you need to differentiate between different departments.  E.g. if you need different departments to create public-facing forms, each with their own "theme", you may want to consider multi-site.


Wrong email being sent for event confirmations

I have just a suggestion for debugging:

Enable debugging at civicrm/admin/setting/debug.
Add the smarty token {debug  output="html"} to the workflow message template.
Now a dump of all the smarty variables and their values are shown in the email. Better to this on a test instance because you do not want your participants to see this.
Examine the values of $event.confirm_email_text, $isOnWaitlist and $isRequireApproval. Maybe this gives some more information.


How to resolve "Call to undefined function" after upgrade to 4.7.27 CRM_Core_SelectValues::datePluginToPHPFormats()

After searching on Jira for the funciton, nothing came up, so searched the codebase from our backup and found the function was in the file: civicrm/civicrm/CRM/Utils/Date.php:1788

It's now gone, along with a lot of other ones!

So I've added the array of date formats to the code to workaround the issue.

//$actualPHPFormats = CRM_Core_SelectValues::datePluginToPHPFormats();
  $actualPHPFormats = array(
    "mm/dd/yy" => 'm/d/Y',
    "dd/mm/yy" => 'd/m/Y',
    "yy-mm-dd" => 'Y-m-d',
    "dd-mm-yy" => 'd-m-Y',
    "dd.mm.yy" => 'd.m.Y',
    "M d" => 'M j',
    "M d, yy" => 'M j, Y',
    "d M yy" => 'j M Y',
    "MM d, yy" => 'F j, Y',
    "d MM yy" => 'j F Y',
    "DD, d MM yy" => 'l, j F Y',
    "mm/dd" => 'm/d',
    "dd-mm" => 'd-m',
    "yy-mm" => 'Y-m',
    "M yy" => 'M Y',
    "M Y" => 'M Y',
    "yy" => 'Y',
  );


How does in-line editing editing work in CiviCRM?

Assuming you have an API that allows to modify the entity you want (if it's a custom one, it's easy to add), adding a few classes should be enough to enable the edit in place. You need to define the entity that contain the field (class crm-entity, id "type-{id}" on a containing dom node and then "crm-editable crmf-{fieldname}". for example:

    Fred

    Mr.

      No

More details in the doc

https://docs.civicrm.org/dev/en/latest/framework/ui/#in-place-field-editing


How can I tell which template a specific report instance is based on?

Short answer: with some difficulty.

If you only have access to the web interface, your best bet is to use the "Create Report from Templates" link under Reports to see a listing of all the available templates, and try the "Existing Reports" link on the most likely ones to see if the report is listed.

If you have database access, you can look up the report instance in the civicrm_report_instance table where it will tell you the class that the instance is based on, from which you can usually identify the report.

Providing the report template information on the report instance would be a great idea.


In theory you could update this by yourself via SQL.  There are two arguments against this thought:

The ID won't match anyone else's Civi, which could lead to problems with third-party extensions.
This is a change that the rest of the community can benefit from.

I would file a ticket at issues.civicrm.org.  If you have the chops to create a Github pull request, great!  If not, no worries.  Please be sure to include a reference to sources showing the missing "State", such as https://en.wikipedia.org/wiki/Local_government_in_Fiji.


is there a way to share an event post to facebook or mailchimp?

In CiviCRM you can create events and manage (registered) participants at an event.
CiviCRM also provides an online registration form for events.

You can use the link to the public information page and the online registration form in a mail send from mailchimp or in a message on facebook. As far as I know there is no automatic way of doing this.

If you want more information also take a look at the user guide of CiviCRM: https://docs.civicrm.org/user/en/latest/events/what-is-civievent/


The advice in the documention is fairly old and much of it is no longer appropriate. In the most recent CiviCRM versions, more and more of the url settings are automatically calculated from the 'base url' and are relatively easy to update just by editing the CIVICRM_UF_BASEURL in your civicrm.settings.php file, and then clearing your caches for good measure. In fact, most of the time you don't even have to worry about that, you can access much of your civicrm from multiple domains (e.g. with and without www). Of course, that's not usually a good idea, and the one key time that the settings file matters is when your civicrm is invoked via a non-CMS entry point (e.g. the click-through tracking url from CiviMail).

Usually, it's when you also have to change file locations that it gets the most icky.

The one recent gotcha I've seen is a ckeditor security check for file uploads that will break things in a small way if you don't have the file locations right (e.g. you need the actual file path instead of a symlinked one). But that's a digression for completeness and unrelated to your question....


HOWTO reliably set default Country on Import?

I think the problem can happen if you import your 'State' as the Abbreviation. If you look in table civicrm_state_province you will see lots of States with Abbreviation CA - and unless you specify the right country it can have unexpected out comes possibly depending on which Countries you have enabled.

I think this jira address the core issue

The workaround for this issue is to ensure that, when importing address data, that a valid country is always specified when there is data in a State/Province field.


(Event reminder) Exclude Participant who registered after the event!

The only one I can think of is to switch off the confirmation email once the event date is up? This can obviously be done manually, or you could create a little extension with a scheduled job that does this on a daily basis?


Create and manage a custon table in an extension: How to

Check this section on the wiki: https://wiki.civicrm.org/confluence/display/CRMDOC/Create+a+Module+Extension#CreateaModuleExtension-Addadatabaseupgrader/Installer/uninstaller
You will need to add an upgrader to your extension, and from that upgrader you can manage your database file installs. Also, you might want to add a DAO class?


How to enter event registrations after event has ended

It looks like you set end dates not just on the event, but on the price fields as well.  If so, you can remove the end dates from the price fields and that should fix your issue.

Public registration will still be impossible.  End dates on price fields are only necessary if that price option goes away before the event takes place (e.g. early bird pricing).


Disable opt-in e-mails for joining groups

You probably saw this but there is a second setting that deals with Double Opt-In - but since you only referred to one, the other one is

  Enable Double Opt-in for Profiles which use the "Add to Group" setting
  When CiviMail is enabled and a profile uses the "Add to Group" setting, users who complete the profile form will receive a confirmation email. They must respond (opt-in) before they are added to the group.

Also at this path - civicrm/admin/setting/preferences/mailing?reset=1


Profile add-to-group feature doesn't work with petitions

This is probably a bug (or, perhaps more appropriately, an incomplete feature).  There have been a number of features that apply everywhere but in petitions--it's newer than some other features, and it doesn't have as many users as contribution pages or event registrations.

To double-check, visit a demo site (found via https://civicrm.org/demo) and confirm that the same thing happens.  Double-check (on your site and the demo) that you haven't checked the "Enable Double Opt-in for Profiles which use the 'Add to Group' setting" in Administer - CiviMail - CiviMail Component Settings, as that may indicate a problem with the opt-in emails going out (though you'd see problems with contributions and events too in that case).

Finally, assuming the problem's on the demo too, submit a bug report at issues.civicrm.org.


Turns out the issue was our server's operating system. We were on CentOS 5.5, and it doesn't support OpenSSL higher than 0.9.8. We had to upgrade to a new server. We decided on a CentOS 7 server and are in the process of migrating. The CentOS 7 server came with OpenSSL 1.0.2 installed. I setup and tested our connection with iATS today and had it working in no time at all. Hooray!

While I had manually updated OpenSSL, I neglected to update it with our server's package manager (and our website would only recognize what the package manager was using). But it turns out with CentOS 5.5, the yum package manager only goes up to 0.9.8e. There was no way around it.

There are so many benefits to CentOS 7 over 5.5, even with all the migration work, I'm glad we made the change.


The base URL is set in civicrm.settings.php.

I can imagine you create a conditional statement in there.

You should try if $_SERVER['SERVER_ADDR] or $_SERVER['SERVER_NAME'] is the right variable for you to differentiate between the 2 situations.

More info:
http://php.net/manual/en/reserved.variables.server.php


Multiple Conditions for Scheduled Reminder

I do not think you can do this with Scheduled Reminders. The CiviRules extension (https://civicrm.org/extensions/civirules) might be able to help you out. Some examples at https://docs.civicrm.org/civirules/en/latest/basic-example-introduction/

Having said so, I do not think there is a time comparison yet that will allow you to look forward as we have never encountered this. That will mean you will have to add this to CiviRules or have an expert do this for you. More information about extending CiviRules can be found here https://docs.civicrm.org/civirules/en/latest/create-your-own-introduction/.

Find yourself an expert on the CiviCRM home page if you need it, or let me know if you want me to take this on.


We developed the Vanco payment processor several years back and it's working through version 4.4.  We are talking with Vanco about updating it; I'm fairly positive it will not work for 4.6.  We should have a plan next week.


I don't think you can generate a qfKey - if I understand your question, using an html-snippet of a Profile that is set up with the Groups field may give you what you want.


Ok, so here is where I am after some head scratching and some inspiration from @IowaBoy. All of my contribution pages are now working, having recreated the problem ones from scratch instead of copying a working one. All of the contribution pages that had problems were created about a year ago and they were working as we had membership sign-ups from all of them. I now think that they stopped working after my upgrade from CiviCRM 4.7.27 to 4.7.29. I suspect this as that I started receiving notifications about the problem some time after the upgrade.

In my investigation of the problem, I verified that a new test contribution page made by copying the working one also did not work. I further verified that a new test contribution page made from scratch worked as expected. I have recreated our non-working contribution pages from scratch and so far they seem to be working. I stronly suspect that something in the 4.7.29 release has broken the process of creating a contribution page by copying. Thanks to IowaBoy for stimulating my thinking process.


Case Type field not available to add to a profile

Case Type isn't really a field it's a whole set of configuration items. I don't think you can do batch case type updates in core. There might be an extension (e.g. https://civicrm.org/extensions/webform-civicrm-integration) but I don't remember seeing if it had something for this.


Check to see what your default email location type is and add that as the second condition: "AND Location Type = [default]"
The issue was that both email table entries (Home & Billing) are initially created as Primary. But the non-default email is then updated to not Primary. So the CiviRule processes before the non-default email update happens. .
Thanks to ErikH and Aidan for their help in troubleshooting this.


Is there a way to encrypt a single field in Civi database?

You should be able to use the functions in:

CRM/Utils/Crypt.php

to do symmetric encryption/decryption of the fields. Password related fields in the CiviCRM db are encrypted. As Lesley mentions, there are two aspects to this problem. Encrypting data, and restricting access to the data to a certain class of users


Is there any way I can know from which page I came from?

This sounds similar to a payment processor flow (especially the "button" style processors). In those, you typically pass a "return URL" to the remote site, and they would in turn direct your visitor back to the specified URL.

If the return URL needs to be a separate callback (eg an IPN URL), then you might add additional parameters (&return=civicrm%2Fevent%3Fid%3D1%26reset%3D1) to the IPN URL, and the IPN can in turn decode that (civicrm/event?id=1&reset=1) and perform a final redirect to land the user on the page they originated from.


Contact Tabs links gone away When clicking on Pager Next/Prev/Page Change under My Custom Tab for Contact

I have found the Problem, Problem was inside pager.tpl
pager.tpl generate some js to handle ajax page loading When pager.tpl location variable != top
That's js look like this without compiled(in pager.tpl):
{if $location neq 'top'}

#crm-main-content-wrapper is the main container of All tabs link and tab content. that's why it's html/content replaced by ajax response html.
To fix this what I have done:
Here is my .tpl file code(after fixed):
<form class="Your_Unique_Class_Name">

...

  {include file="CRM/common/pager.tpl" location="top"}
  {strip}

        ...

    {foreach from=$rows item=row}
        ...
    {/foreach}

    {/strip}
    {include file="CRM/common/pager.tpl" location="bottom"}

{include file="CRM/common/jsortable.tpl"}
</form>

and Code for setting up Pager:
/**
 * Setting up $_pager for pagination support
 * Used CRM_Utils_Pager & CRM/common/pager.tpl to handle pagination
 */
public function pager() {

    $this->assign( 'form', array( 'formClass' => 'Your_Unique_Class_Name' ) );

    // Setting up parameters for Pager that we are gonna create
    $params['status'] = ts('Some Entity %%StatusMessage%%');
    $params['csvString'] = NULL;
    $params['buttonTop'] = 'PagerTopButton';
    $params['buttonBottom'] = 'PagerBottomButton';
    $params['rowCount'] = $this->get(CRM_Utils_Pager::PAGE_ROWCOUNT);
    if (!$params['rowCount']) {
        $params['rowCount'] = CRM_Utils_Pager::ROWCOUNT;
    }

    // Getting all Some Entity by Contact ID. if $_contactId is null then it return value for all Contact.
    $params['total'] = civicrm_api3( 'Entity', 'getcount', array( 'contact_id' => $this->_contactId ) );;

    // Setup Pager object and assign into template so it can be used by CRM/common/pager.tpl
    $this->_pager = new CRM_Utils_Pager($params);
    $this->assign_by_ref('pager', $this->_pager);
}

It's taken me long hours to find out this problem solution;
I think it will help you so that's why sharing with you!
Thanks


Activity Details report filter missing tags

Only bare tags (tags not part of an activity set) trigger the field to appear.
The issue seems to be partly how the report retrieves tags where it calls getTags which only returns bare tags unless you give it a parent id for a tag set.
I think the report should be updated to match how it's done elsewhere. Where I've seen it it's usually done as two separate fields.


How can I generate a search results page from a list of contact IDs, programatically?

We have done work that is hopefully heading to Civi core which makes the following possible:

Below is the table of field name vs params that can be used in the URL to force the search results.

Contribution Tokens

Field Name > > Param in URL

contribution_page_id > > pid

financial_type_id > > fid

contribution_status_id > > status

is_pay_later > > pay_later

receive_date_from > > (receive_date)    start

receive_date_to > > (receive_date)  end

Eg of complete search URL -

"civicrm/contribute/search?reset=1&force=1&status=1&fid=2&pay_later=1&start=20181206&end=20181210"

Membership Tokens

Field Name > > Param in URL

membership_type_id > > type

membership_status_id > > status

start_date > > start & start_high

end_date > > end & end_high

Eg of complete search URL -

"civicrm/member/search?reset=1&force=1&type=1&status=1&start=20181002&start_high=20181004&end=20181103&end_high=20181109"

Participant Tokens

Field Name > > Param in URL

event_id > > event

status_id > > status

role_id > > role

is_pay_later > > pay_later

register_date_from > > register_start

register_date_to > > register_end

Eg of complete search URL -

"civicrm/event/search?reset=1&force=1&event=1&status=2&role=3&pay_later=1&register_start=20181210&register_end=20181214"

Activity Tokens

Field Name  Param in URL

activity-type id > > type

activity_status > > status

has a follow-up activity > > hasFollowUp

is a follow-up acivity > > isFollowUp

start date > > dateLow

end date > > dateHigh

Eg of complete search URL -

civicrm/activity/search?reset=1&force=1&status=1&hasFollowUp=1&isFollowUp=1&dateLow=20181210&dateHigh=20181212&type=3

Here is the link to the gitlab ticket https://lab.civicrm.org/dev/core/issues/252


How can I indicate if our donors prefer to receive Charitable/Political Tax Receipts by Email or Postal Mail?

The CDN Tax Receipts extension contains several hooks - one of them allows you to set the 'method' of delivery (Email vs Print) for a specific Contact. Here's an example implementation:

/**
 * Determine Contact's Preferred Communication Method
 * return 'print' -> if Postal Mail is checked
 */
function my_receipts_cdntaxreceipts_method($contactId) {

  // Check if Contact's Preferred Communication Method = Postal Mail -> id = 3
  $result_pcm_id = civicrm_api3('Contact', 'get', array(
    'return' => "preferred_communication_method",
    'id' => $contactId,
  ));

  if ($result_pcm_id['is_error'] != 1) {
    if (count($result_pcm_id['values'][$contactId]['preferred_communication_method']) == 1) {
      if ($result_pcm_id['values'][$contactId]['preferred_communication_method'][0] == 3) {
        return array('print');
      }
    }
  }
}


Downgrade 4.7.29 to the latest LTS 4.6.37 - is it possible?

Is it possible? - Probably, with a lot of time and skill.

In most releases, there are changes to the database structure or table content determined by the files under CRM/Upgrade. To revert back to a previous version you could in principle work through all the updates between your current version and the one you want to go back to and reverse each change in your database.  So if a table had a column added, you would need to remove it etc.  If a column was dropped, you'll have a harder time adding it back as you may not have the right values.

A git diff to show the differences in CRM/Upgrade runs to nearly 10,000 lines (depending on what options you use), so you would have a lot to work through!

Upgrading is regarded as a one-way process. If you do have the time and skills to successfully revert, I'd suggest that is more beneficially put to use in fixing any issues you find in the latest release.


UK Counties list not complete - can this be amended by user or does it need to be amended in the core program?

You can amend this list directly in the DB if you want to. You can find the relevant data in the civicrm_state_province table. To see the values for the UK use:

select *  from civicrm_state_province csp where country_id = 1226


Automatically filling custom fields with data

Why not expose the Relationship information on the Contact Summary screen? Two ways to do this that I know of
a/ use this extension to show a block of a specified relationship type
b/ use the Contact Summary Layout editor extension but that requires resetting up the whole contact screen


DataTables Warning: Cannot view Activities after upgrade to 4.7.28

In order to fix this regression, you need to apply this tiny patch, which wasn't merged in time for the 4.7.28 release.

Cheers,
Olivier;


AJAX problem in CiviCase - Administer Case Types

OK, I found the problem. It was the same issue as reported here. It wasn't a CiviCRM problem at all. The JavaScript errors were caused by the K2 component, which alters the HTML output after CiviCRM does. K2 was passing text containing quotes (specifically 'prefix="og: http://ogp.me/ns#"') to JavaScript, so these quotes ended up unescaped. More info here. The solution was to apply this patch to K2 (or, in my case, to remove K2 altogether, since we decided not to use it).


How to record work trades as payment on balance owed

I would create a new Financial Account and Payment Instrument called 'Work Trade'. And use 'Work Trade' payment instrument to record $200. And while exporting accounts you can handle 'Work Trade' accounts separately.

Cheers

Pradeep