Supplemental address should be searchable I want the supplemental address fields to be searchable under at least "advanced search". Right now the text entered in "supplemental address" can never be used for searching and retrieving. how do i go about it?

It does sound like a reasonable feature request, and the good news is that it's already been implemented.

The pull request was merged in March, so any version of CiviCRM from 4.7.18 upwards should include it in the advanced search criteria.

I checked locally and here's a screenshot of the changed address fields in advanced search:


How do I add a CiviCRM Contact as a User in Wordpress without them being a Member and using the WP Member Sync Plugin? Our organisation has one Membership type in CiviCRM, and we have that syncing with a Group in Wordpress using the CiviCRM Wordpress Member Sync plugin. All is well.
We also have a Guest sign-up form (using a Civi Profile with WP account creation required) which adds them as a Contact in Civi and a User in WP, they also get added to a Civi Group (Guests) which is synced to a WP Group (Guests). All is well. [Lapsed Members should also move to this WP Group (Guests) until they renew their membership when they should get removed. Yet to be tested]
However, we sometimes need to manually add Contacts in CiviCRM ourselves (say VIP speaker for an event), and although we add these to the synced Guests group, they don't get added in WP, of course, as a WP User account is not created when we add the Contact manually in CiviCRM.
Is there a box to tick / dropdown to select for a Contact or multiple Contacts along the lines of: 'Create WP User Account from Contact'?
I have CiviCRM WordPress Profile Sync plugin installed.
I truly hope this is not a stupid question...
Cheers, Tracy

Add the following to your wp-config.php file:
define( 'CIVICRM_WP_PROFILE_SYNC_BULK', true );

Then select some contacts and use the “Actions” dropdown to “Create WordPress Users from Contacts”.


Change permission to "Print Report" in CiviCase I want to modify CiviCase so that every user with the right "view my cases and activities" can see and use the "Print a Report" button in the Case View.
Right now, this is only granted to users with the "view all cases and activities" right.
I modified a template (sites/default/files/civicrm/templates_c/en_US/%%64/643/643EC55F%%CaseView.tpl.php) where I found the "Print Report" link in the following code:
<?php if ($this->_tpl_vars['hasAccessToMyCases']): ?> &nbsp;

          <a class="crm-hover-button action-item no-popup" href="<?php echo CRM_Utils_System::crmURL(array('p' => 'civicrm/case/report/print','q' => "all=1&redact=0&cid=".($this->_tpl_vars['contactID'])."&caseID=".($this->_tpl_vars['caseId'])."&asn="), $this);?>
"> <?php $this->_tag_stack[] = array('ts', array()); $_block_repeat=true;smarty_block_ts($this->_tag_stack[count($this->_tag_stack)-1][1], null, $this, $_block_repeat);while ($_block_repeat) { ob_start(); ?>Print Report<?php $_block_content = ob_get_contents(); ob_end_clean(); $_block_repeat=false;echo smarty_block_ts($this->_tag_stack[count($this->_tag_stack)-1][1], $_block_content, $this, $_block_repeat); }  array_pop($this->_tag_stack); ?>
        <?php endif; ?>

and changed the condition to:
<?php if ($this->_tpl_vars['hasAccessToMyCases']): ?> &nbsp;

Now, the "Print Report" button appears also when I log in as a user that has only "view my cases and activities" rights. But when I click on it, I get redirected to the (non-logged-in) startpage.
Does anybody have an idea what else needs to be changed?
Edit:
I created an extension including Demerit's code. It was necessary to additionally change the permission in the file templates/CRM/Case/Form/CaseView.tpl so the button will be visible in the first place. Though, the functionality doesn't work yet.
Edit:
I think the problem is that I am setting the permission to "view all cases and activities" only on the CaseView form, but not the page that opens when user clicks 'Print Report'. I suppose the permissions for that page are set in sites/all/modules/civicrm/CRM/Report/Page/Report.php.

sites/default/files/civicrm/templates_c is where temporary compiled files live. You could try instead editing templates/CRM/Case/Form/CaseView.tpl but there is no such thing as hasAccessToMyCases (where you've just replaced "All" with "My") so you'd need to use something else. But also note this will break when you upgrade since the file will get replaced.
What I would do is create an extension and in hook_civicrm_buildForm I would do something like:
if ($formName == 'CRM_Case_Form_CaseView') {
  $form->assign('hasAccessToAllCases',
    CRM_Core_Permission::check('access my cases and activities'));
}

This would also give access to the Audit Report, but you're probably ok with that since it's just a variation of the Print Report. I vaguely remember the original reason for restricting being something like "this would make it too easy for somebody to print it and then give it to an unauthorized person, either on purpose or inadvertently". It was a different era.
But it may also allow access to other things it shouldn't. Would need to test.
Then you also need to edit this line in CRM/Case/xml/Menu/Case.xml which controls access to urls, and then clear civi caches after at Admin - System Settings - Cleanup Caches.
<access_arguments>access all cases and activities</access_arguments>
change to
<access_arguments>access my cases and activities</access_arguments>
Also when you get redirected like that, if you then visit any civi page it will show you the actual error.


using MailChimp on LAN CiviCRM Our institute uses CiviCRM only on our LAN. is it possible to use mailChimp for bulk emailing, CiviMail, in our LAN CiviCRM.?

Wordpress, Wamp 3, Windows 7

If the machine that connects to mailchimp (the wamp machine) can reach the internet then yes.


Upgrade Now Button does not show when upgrading to 4.6.9 I usually run the upgrade process for CiviCRM and it usually works well. On 4.6.9 I noticed that the upgrade now button for step 11 in the upgrade documentation does not show. It says Upgrade CiviCRM to version 4.6.9 but no upgrade button shows. I did manage to upgrade on a non-ssl site but with the sites that have SSL there seems to be problem.

If you disable the verify SSL certs and Force SSL certs before doing the upgrade (even if your site is on SSL) then the upgrade works fine.

So in the upgrade process before turning of CiviCRM additional modules disable the two fields of Verify SSL certs and Force SSL certs. You can find the settings under /civicrm/admin/setting/url?reset=1

Remember to turn them back on.

Cheers.


Full minute timeouts on first page load I'm finding that when I first go to a CiviCRM page in the morning there's a loading time of just over 1 minute(!)

There are no errors (on screen, nor in apache error log, nor in Drupal's watchdog) and after this delay everything works as normal.

Looking in firebug it's the actual page load that's stuck on client "waiting" for a full minute before it jumps to life and starts loading the zillion other requests typically needed on a CiviCRM page, which all go fast enough.

I've tried to trigger this. Clearing Drupal caches (drush cc all) does not trigger it; clearing CiviCRM caches (via civicrm/admin/setting/updateConfigBackend) do not trigger this delay.

However, adding a new user in Drupal does also trigger it. (Adding a new Contact in CiviCRM does not trigger it.)

Any ideas?

This problem is not to do with CiviCRM.

My server defaults to using ipv6 but this is not configured. Therefore when CiviCRM tries a file_get_contents('http...') it is timing out. This vexed me for a while because on the command line wget works fine; I thought I had disabled ipv6 on the server, but turns out file_get_contents doesn't know about that.

Sorry for the non-question! I only saw this happening with CiviCRM. FYI it is triggered by the occasional CiviCRM security checks (which ironically, I recently asked another question about). I don't know when these are triggered; but they are triggered about once a day per user and again if a Drupal user is added.

EDIT

This is not an IPv6 issue, as I originally thought. I now believe it's a problem/quirk of using apache2-mpm-itk as with this worker I get the problem but with the default worker I do not.

I can confirm that this is/was a bug in the Apache MPM ITK module.

For Debian Jessie users, you can get a fix by:

deb http://mirrors.linode.com/debian/ jessie-proposed-updates main

into /etc/apt/sources.list, and then running

apt update && apt install libapache2-mpm-itk
systemctl restart apache2.service

Apparently this fix will make it into Jessie 8.2, too.


Extracting email address for the who database? How do you extract email addresses from CiviCRM to go into an excel file?

Thanks,

Do you mean to export all the contact's email address from CiviCRM into csv file? If so you can do Find Contacts and export the result into csv format.

Navigate CiviCRM >> Search >> Find Contacts
Select list of contacts to export and from action dropdown select 'Export Contacts' options.
On export screen select 'Select fields for export' and proceed
On 'Select fields to export' page from the first dropdown select Individual and then Email and Primary from the drop drown besides it.
Click on export button.

HTH

Pradeep


Notify when profile form is submitted does not work (form with attached files) I have created an application form in CiviCampaign through Petitions.

Everything has been set up fine, except that even after adding one or several emails in Administer > Customize Data and Screens > Profiles and click "Settings" on the profile created for this form in the Advanced Settings section "Notify when profile form is submitted" nothing ever happens when a form is submitted.

This is particularly important because we are requesting that two files are attached before submitting and we can't get access to them through civicrm backoffice. I was expecting they would be sent in the notification email.

We are using CiviCRM in Joomla, so this was the only solution I found to create an application form, without using CiviContribute, which does not apply to what we need. When we use CiviContribute the email notification works fine.

Help would be greatly appreciated.

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.


How to stop Mailing Queue from civirules? By mistake I have turned on a settings in civirules that it keep sending email repeatedly. I have removed the criteria from civirules but it seems mails are still being sent through "Scheduled mail Job". Is there a way to stop any future emails ran by "delayed action"?

Rules run by delayed action should be in the civicrm_queue_item table.  Please be sure not to delete any other rows that may be in there!


API call for ACL roles no longer works I have an API call to get ACL roles that worked before I upgraded to 4.7.29 (I think I was at 4.7.22). Now, this returns no results:

    $entity_id = $group["id"];
    $apiParams = array("entity_id" => $entity_id
            , "entity_table" => "civicrm_group", "is_active" => 1);

    $entity_name = "Acl_Role";
    $result = civicrm_api3_get($entity_name, $apiParams);

I'm debugging now, but wondering if anyone can quickly tell me if something changed recently that I need to catch up on?

I am not sure why you are using civicrm_api3_get. The standard way for v3 api calling is civicrm_api3('entityName', 'action', $params).

Just try replacing the snippet from above question to below:

 $entity_id = $group["id"];
 $apiParams = array(
   "entity_id" => $entity_id,
   "entity_table" => "civicrm_group",
   "is_active" => 1
 );

 $entity_name = "Acl_Role";
 $result = civicrm_api3($entity_name, 'get', $apiParams);

HTH

Pradeep


How to import groups of contact and make it a new group I am new in the CiviCRM community! As I am accustomed to closed-source CRM platforms, I have issues finding an answer to my need: I would like to import a group of contacts, and then make it automatically a new group so that I could email them.
It is possible and how?
Thanks,
Mathilde

You can import contacts and assign them to a group as you are importing. See https://docs.civicrm.org/user/en/latest/common-workflows/importing-data-into-civicrm/#preparing-to-import-data
When creating the Group check the box for "Mailing List" otherwise it won't be available as a group when you go to CiviMail - New Mailing.


Access denied with viewing group contacts I have a drupal 7 civicrm site just upgraded to 4.7.8 and I am user 1 for drupal and civicrm.

I have two instances where I cannot get past access denied

contacts/manage groups/select group and then when I press to see contacts it says access denied.

The same happens when I go to draft email and want to view the draft email.

I have a couple of other sites and this is not happening. These two use the same theme however so I think it is something theme related (possibly module therefore). I have disabled the theme and it did not resolve. But When in site maintenance node instead of access denied I get the site in maintenance mode page.

I'm not a developer so am not quite sure where to start in trouble shooting this. My permission credential is not being passed from page to page but I'm not sure why....

If anyone has any thoughts on where to start with this that would be great.

Thanks you.
Caroline

Ah I found an answer in the old forum here https://forum.civicrm.org/index.php?topic=27010.0


Can I create a Smart Group programatically? I'm setting up our system to match up contacts with the geographical regions covered by our different chapters.  I've gotten to the point of using the  built in geocoding, along with polygon coordinates stored in a custom field for each chapter, to be able to create a relationship showing a contact "in the territory of" a chapter.  I'll use hooks to create or remove the relationship if a contact address or chapter region changes.

I envisioned having multiple smart groups for each chapter - contacts who are "in the territory of" and members, or volunteers, or on the national mailing list, etc.

Is there a way to create smart groups via the API or DAO calls?  It'd be ideal to create desired smart groups via a hook if a new chapter is added, rather than having to manually search on the desired parameters and create each group.

If not, maybe I'll create static groups from hooks, then have a cron job that syncs contacts to those groups.  Basically implementing my own smart groups.  Thoughts?

There's an example of creating a smart-group in v4.6's CRM_Contact_Form_Task::createHiddenGroup() which calls CRM_Contact_BAO_Group::createHiddenSmartGroup(). It should show the relevant fields/data-structures. There are a few details which would need to be adapted if used in another context:

In CRM_Contact_Form_Task::createHiddenGroup(), it just passes through some existing formValues. This data-structure is a big array defining the search parameters. You can inspect example records in civicrm_saved_search to see what this looks like. I believe this corresponds to advanced-search/CRM_Contact_BAO_Query, but you'd need to investigate.
In CRM_Contact_BAO_Group::createHiddenSmartGroup(), the title is hard-coded.
In CRM_Contact_BAO_Group::createHiddenSmartGroup(), the is_hidden field defaults to 1.


How do I get CiviXero to process contributions missed in the first run? I've got the first 10 items for CiviXero transferred and it is transferring any new invoices. I set the start date to the start of the month but it does not seem to be  adding the items missed in the first run after the first 10 items.

How do I get CiviXero to add a specific contribution to it's account_invoice table for consideration?
How do I get CiviXero to process a specific contribution. I've tried invoice push job with contribution_id as the argument. Without the item being in account_invoice it doesn't consider it as needing being pushed.

How do I get CiviXero to add a specific contribution to it's account_invoice table for consideration?

I think if you just edit and save the contribution, it should be added to this table (provided it does not end up with any error).

  How do I get CiviXero to process a specific contribution. I've tried invoice push job with contribution_id as the argument. Without the item being in account_invoice it doesn't consider it as needing being pushed.

Only the rows present in "civicrm_account_invoice" is considered by the civixero extension to push to xero. So if the contribution id is not present in this table, you need to make sure it does.

After a record is added to 'civicrm_account_invoice' table, you can use contribution_id param to push a single payment to xero.


Issues with Migration - Cannot add foreign key constraint I'm having multiple issues with a CiviCRM 4.7.17 on WordPress 4.9.5 which has encouraged me to make different attempts to migrate the site following the official SysAdmin Guide. The closest I've gotten so far is:

Clean WordPress install
a migration of Wordpress.
Removed all CiviCRM plugin files, settings, and the civi sql tables.
Installed CiviCRM (same ver. as the original site) but I made a separate SQL database - could this cause issues when migrating?

Attempted to import the original civi database via phpmyadmin but receive the following:

  CREATE TABLE `civicrm_acl` (
  `id` int(10) UNSIGNED NOT NULL COMMENT 'Unique table ID',
  `name` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'ACL Name.',
  `deny` tinyint(4) NOT NULL DEFAULT '0' COMMENT 'Is this ACL entry Allow  (0) or Deny (1) ?',
  `entity_table` varchar(64) COLLATE utf8_unicode_ci NOT NULL COMMENT 'Table of the object possessing this ACL entry (Contact, Group, or ACL Group)',
  `entity_id` int(10) UNSIGNED DEFAULT NULL COMMENT 'ID of the object possessing this ACL',
  `operation` varchar(8) COLLATE utf8_unicode_ci NOT NULL COMMENT 'What operation does this ACL entry control?',
  `object_table` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'The table of the object controlled by this ACL entry',
  `object_id` int(10) UNSIGNED DEFAULT NULL COMMENT 'The ID of the object controlled by this ACL entry',
  `acl_table` varchar(64) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT 'If this is a grant/revoke entry, what table are we granting?',
  `acl_id` i[...]
MySQL said: Documentation

#1215 - Cannot add foreign key constraint

After looking at various posts with similar errors, I can't make the import work. What gives?

I believe the database itself is screwed up beyond my limited understanding which makes me think a "start from scratch" would be useful but losing all the data isn't acceptable. (One issue I've been having lead me realize other things were wrong: Contacts not merged When creating Account on Event Page - DB Error: already exists)

Is it at all possible to export all the data that's been user-created with Civi to import on a clean Civi install besides the way listed in the SysAdmin guide?

ie. Move contacts (I know this can be exported via Civi), their history, custom profiles, custom fields, events, etc. to the testing site.

It looks like your error message is truncated, which makes this a little hard to troubleshoot, so if you can find a way to generate a non-truncated version of this message, I think the solution should be clearer.

That said - I'm looking at a CiviCRM database dump.  The first two tables to be created are civicrm_acl and civicrm_acl_cache.  Your error references civicrm_acl - but civicrm_acl doesn't have any foreign key constraints defined, so it makes no sense that you'd get this error on the line in your question.

However, civicrm_acl_cache DOES have a foreign key constraint - on civicrm_acl.  So I would assume that one of the following is true:

Your PHPMyAdmin user doesn't have the permission to create civicrm_acl, or perhaps to insert data into it.
Your database dump you're loading is missing data from civicrm_acl.

Please check the following:

Does civicrm_acl exist after you've imported it? If not, check permissions.
Does civicrm_acl exist but contain no data?  If yes, open your database dump in a text file and ensure that there's a line starting with INSERT INTO `civicrm_acl` VALUES.  That line should be between the lines starting with CREATE TABLE `civicrm_acl` and CREATE TABLE `civicrm_acl_cache` - somewhere right near the top of the file.
If that line DOES exist, you might not have INSERT permissions.
If that line doesn't exist, you should try getting a dump that does.


How can i merge custom fields? I would like to merge some custom fields in my database. I have a set of custom fields and in this set i have a custom field with multiple options, I will like now to merge some option fields for this custom field.

example: option field A = tomato|tomato ,
         option field B = apple|apple ,
         option field C = fruit|fruit ,

I want to merge A and B to C, note that both A, B and C have data.

Is this possible and how can i accomplish this without loosing any data?
Civi version 4.5.5 and Drupal

First create a Temp table with same structure and move all the data to the temp table. And then create a new column X and merge both the column A and B together and insert the values into the new column X

And once you are happy with the merge column X move the same against custom table matching with the entity ID - Job done

Please refer to the below link for Example
http://www.tutorialspoint.com/mysql/mysql-concat-function.htm


Looking for contacts that are Pending (status by email) E-news Opt-in We are having an issue with the number of bots that are signing up for our e-news online. I would like to search for all contacts that have a status pending by email to our E-news group.

Jon from Megaphone Tech created a custom report that that will allow you to filter by group status. Your system administrator would need to install it for you.


Why does contribution verification display a numeral value rather than a text value When a user submits a credit card for a recurring contribution, the verification page displays the following message:

I want to contribute this amount every 1 (s)

What do I need to do to replace the value '1' with the text 'month'?

Drupal 7, CiviCRM 4.4, Vanco Payment Processor

While it's still clear you've got a bug, I'm pretty sure your issue isn't that you have "1" but rather that the unit--week, month, year--is missing.  The numeral is there in case you wanted to donate quarterly--it would say "3 month(s)". Again, not that this makes it any better.

However, it might help you or whoever diagnose the bug.  Hopefully it's as simple as the payment processor extension not providing the unit back to the receipt/thank-you page.


How to prevent fraud attempts on Contribution pages? An org I work with is reporting heavy fraudulent use (at least attempts to use -- it seems many are being declined in Auth.net, although some are getting through) of the CiviContribute form, despite the "I'm not a Robot" reCAPTCHA that is in place.

What are other ways to prevent these types of fraudlent attempts besides the Captcha on a profile? (I thought the Captcha would prevent it from even showing up in Authorize.net)

How hard this will be depends on how determined the service abuser is to adapt to the defenses you introduce, and how easy a target your site is compared to other sites available to the attacker. If you are seeing a significant level of abuse, this indicates that your site is one of the lower hanging fruit.

Here are a couple of options I've seen have good effect -

fail2ban - We've used fail2ban effectively for assorted spam and abuse prevention. An approach to this looks like:

Add a custom form validation hook to your contribute form.
In this hook, error_log to some logfile.
Add a fail2ban jail with this logfile which uses iptables to ban addresses that look suspicious.

There is a risk of banning legitimate IPs here, eg a single IP which many supporters sit behind (maybe you are a union and half your members are behind a certain corporation's firewall) or your own head office if they make a large number of transactions. So this is an approach to use with some considerations.

This approach is more effective if you are seeing repeat abuse from the same IP addresses; you can identify this by inspecting your webserver logs for the contributions (grep for POST requests hitting civicrm/contribute/transact then group by IP and count requests).

custom spam checks - I've seen form abuse drop off entirely simply by adding an additional required question. You can add this to your form, then use JS in your page to hide the field and populate it. This can be more effective than reCaptcha because reCaptcha is common enough to be worth automating for a botnet, but if your form is one of several they are outsourcing their CC checks to, then you only need to make your form less easy to abuse than others.

This approach is effective against abuse where the attacking engine is less sophisticated than a web browser (ie lacks the JS engine in the browser). It's easy to test out.


Missing input parameters error on opt-out form Our site is producing fatal "Missing input parameters" errors from the mailing opt-out form.  This happens several times every day at random times. I have looked at a few other SE posts with similar errors, but those issues seem unrelated. The log output is lengthy so I dumped it here.  If anyone could decipher it and let me know how to debug this, I'd appreciate it.  Thanks.

The error seems like it might be happening because one of the jid, qid, h params  are not present.

As a first step - I'd make sure that the opt out was working properly with a test contact (send them an email and opt out via the link and confirm it's working).

Then if that is working I'd check your server logs - it's possibly something hitting the url without the correct params (some sort of automated crawl etc).

If you wanted to you could try editing the file /home/user/wordpress/wp-content/plugins/civicrm/civicrm/CRM/Utils/Request.php  on line 31 and output further information about the request. Definitely back up that file first!


Can I use localhost:7979 for amp test and one or more different builds created with buildkit? After running amp config and amp test, I successfully created a drupal-clean build using buildkit and civibuild on localhost:7979, and added a bunch of extensions, etc.

I turned off my Ubuntu 19.04 laptop, and booted up the next day. However, at localhost:7979 I received a lock error message. So I reran amp test to check everything, and the test passed. amp test also uses localhost:7979.

Now, at localhost:7979 I see

Error: Expected GET or POST value 'exampleData=foozball' Error: Failed to write /home/joe/.amp/canary/data/DSEGrMDEi4ocNQRuBOo4IbE2e73MaT8M/example.txt Error: Failed to remove /home/joe/.amp/canary/data/DSEGrMDEi4ocNQRuBOo4IbE2e73MaT8M/example.txt

I ran curl http://localhost:7979/index.php and get the same result as immediately above.

I ran sudo lsof -i :7979 and get this result:

COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2 16634     root    7u  IPv4 507012      0t0  TCP localhost:7979 (LISTEN)
apache2 16635 www-data    7u  IPv4 507012      0t0  TCP localhost:7979 (LISTEN)
apache2 16636 www-data    7u  IPv4 507012      0t0  TCP localhost:7979 (LISTEN)
apache2 16637 www-data    7u  IPv4 507012      0t0  TCP localhost:7979 (LISTEN)
apache2 16638 www-data    7u  IPv4 507012      0t0  TCP localhost:7979 (LISTEN)
apache2 16639 www-data    7u  IPv4 507012      0t0  TCP localhost:7979 (LISTEN)
apache2 16716 www-data    7u  IPv4 507012      0t0  TCP localhost:7979 (LISTEN)

In the results above, the first process is running as root, not www-data. Do I just need to kill that process? Something else?

Thanks for any guidance!

So I figured out the real problem is that I created a build using mysql_ram_disk instead of mysql_dsn in amp config- meaning the mysql database is in RAM, and of course disappears when I turn off my laptop :) .


Is it okay to use both Absolute Date and Repeats in Scheduled Reminders Asking because the issue we are seeing is that if Absolute date is set for the reminder, and 'repeat' is enabled, then we get an sql condition like this:  ("20181212123815" <= DATE_ADD(, INTERVAL 1 month) which causes problems.

Should this combination be allowed, and hence the code/query needs to be improved to cope with this, or should the combination not be allowed and hence the UI needs to prevent users setting this up

It seems reasonable to allow that, although since the repetition "Until" is always relative, I can see why coding might have assumed the start would be relative.

If you plan to enhance that chunk of code, it might make sense to also allow an absolute end date or number of repetitions as alternatives to the relative "until".


Why is test email but not mail campaigns working with Amazon SES with CiviCRM? I have configured Amazon SES with CiviCRM, after configure outbond setting in CiviCRM I got mail from my CRM  via amazonses.com with Subject "Test for SMTP settings" and body "SMTP settings are correct.". But if I try to send a email campaign I'm not getting any mails from my CRM, and the Amazon console is also not showing any mail details.

I have followed the documentation below.

documentation URL : https://hq.palantetech.coop/projects/commons/wiki/Amazon_SES_for_CiviCRM

I have used SMTP direct from CiviCRM.

Ashwin - your latest update showing the error reveals the problem.  Either a) your SES account is still in sandbox mode, or b) you skipped the steps about verifying your sender address/domain.  From my instructions:

Log onto AWS, select SES. Note that you only have sandbox access at this time.
Click on "SMTP Settings" on the left, record the server info, generate SMTP credentials and record those too.
Click on "Verified Senders: Domains". Click "Verify a new Domain". Enter the client's domain name; also click "Generate DKIM settings". Remark: the bounce address must be also verified.

If you've already done this, then request to be moved from sandbox mode into production mode:  Instructions here.


Exporting membership type and contribution total amount An organization sells a variety of membership types.   The goal is to generate an exported CSV that will contain name, address, membership type, and amount paid for that membership.

Two types of memberships are the same price, and CiviDiscount is in use regardless.  Thus total amount of the membership contribution is not a reliable way to determine which membership type someone has purchased.

Unless I use price sets and the 'extended reports' extension from Eileen, I cannot find a way to export "membership type (membership)" as well as "total amount (contribution)" data in the same CSV export.

But this extended report doesn't contain address.  So time to expand that report I guess?

Am I missing an easier solution here?

I just tried this (at Stoob's request) on one report & it seemed to only require a couple of lines -

https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport/commit/fb5ba0d47b1c4fea651fcec5760497bf204c5b56

Note that there are several price set reports & this might not be the one you were focussed on but the principle should be the same


CiviCRM on mobile phone Is there any app for mobile phones that works with recent version of CiviCRM?
We use CiviCRM ver. 4.7.16. and there is one app CiviSync Mobile on Google Play shop, but it doesn't work.

To use your CiviCRM on small screens a responsive theme is all that's needed.

This is an extension that will make the admin menu responsive: https://civicrm.org/extensions/slicknav-web-responsive-admin-menu


Need to make changes to Paypal website pro templete, Where is it located? I am trying to find out the template for Paypal website pro payment page that i see in contribution page. I am not abale to locate it!! Can anyone help me to locate this file please?

templates/CRM/Core/BillingBlock.tpl

Note that the template is quite programmatic and gets in pretty much all of its info via template variables. I suspect you will benefit from reading the developer documentation which will help you with the Civi learning curve.


How to exclude a lapsed membership from mailings Currently using Civicrm 4.7.8 with Drupal.

We have a large membership base. We imported our lapsed members as well in case we will get them to renew membership. Currently about to do a mailings newsletter to our current membership. We wish to exclude the lapsed members from the member only newsletter.

Issue that presents us is that the lapsed members are in different branches, not in a specific group. If we use the "do not email" in privacy settings and they rejoin, our concern is a volunteer that renews that membership may not untick the do not email option, there fore the renewed member would not get their newsletters.

Any suggestions how we might "police" this or is their a way that by marking the do not email option can be automatically undone if someone  renews membership after lapsing?

I may have misunderstood but assuming you are using CiviMember an easy option is to make a Smart Group based on the membership criteria - and use that Smart Group as your Mailing List.

For example, go to Advanced Search, expand the membership section of the search, set the Membership status to eg New, Current and Grace. Then the lapsed members will automatically be excluded until they rejoin at which point they will be included in mailing.


Possible reasons for ACLs to fail We manage a site for a charity working with victims of domestic violence.

They work in 5 separate locations , and the organisation's preference is for staff working in a given area only to be able to access contact records (for staff and clients) in that area.

(In the past they have had to deal with relatives of offenders who have become staff members in different locations in order to access victim's details from their system).

Initially they worked across 3 locations and ACL's worked fine. As there work expanded and more projects came on line, the number of ACL roles and number of extra groups to give access to has expanded. Additionally some staff work across more than one project/ ACL role.

Intermittently the ACL rules fail, and staff members can see fewer contacts within a group than are in it. ie. Location Contact group has 729 members, when Staff Member A views that group from a find contacts search she see's 149 contacts.

(I've checked this using the Drupal Masquerade module).

It seems to me that multiple ACL roles are conflicting with one another, and restricting the number of contacts the staff member can view.

I've fixed this in the past, by deleting ACLs and rebuilding from scratch. Eventually this falls over and we need to do that again.

Has anyone experienced anything like this?

Any ideas what may be causing this intermittent problem?

Drupal 7.39 Civi 4.4.21

Craig - I can't comment on why you might have conflicting ACLs, but want to mention the Permissioned Relationships as ACLs which we built and contributed to provide another solution for multi-level permissioning. You can read about it via the link, but it may suit your need and deals easily with the situation of Staff Member Q needing to access the contacts in two regions, but giving Q a relationship with Region A and Region B, and therefore seeing all those contacts that the Region A and B have permission to access.


How do I display user statistics/analytics on their dashboard? I'm using civicrm and I'm wondering how I can better customize the home dashboard. We have people that are going to be doing walklists and interviewing them. How can I make it so that when they log in, they can see how many people they interviewed so far? Keep in mind that it is specific to all volunteers so ideally, I'd like it if I could setup a global view where they can see how many contacts they have interviewed.

I hope there's a straightforward way to do it. I'm open to using SQL or anything to get it to work. Is there a way to add custom HTML to the dashboard as well? I want the UX/UI to be very simple for volunteers so I'd like to have custom buttons to tell them to 'Start Interviewing' in their walklists, rather than have to go through the menu.

If you aren't using the campaign report (which can be made into a dashlet by checking the Available For Dashboard checkbox when you save - see https://docs.civicrm.org/user/en/latest/the-user-interface/menu-dashboard-and-dashlets/#dashlets), then you could either use https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_dashboard/ to put something custom into the /civicrm/user page, or make your own dashlet to be available at /civicrm/dashboard (see e.g. https://civicrm.stackexchange.com/a/28877/181)


Bring up contact by Amatuer Radio callsign rather than name We have a database of Amateur Radio operators. One field is their callsign.
What I would like to do to make editing events faster, is instead of polling by their name, to add callsign to advanced search.
Is this possible?
Thanks,
Steve

As Laryn notes, it should show up in the Custom Fields section of Advanced Search anyway providing the field is marked as searchable.
You can search by callsign in the Quicksearch box by going to Administer > Customize Data and Screens > Search Preferences and ticking the callsign field in the Quicksearch options box.


"Content-ID" in email attachments I need to add image(no public) in a email. Initially I tried "Inline Embedding" but gmail, ... block the images, now I'm trying to add with "CID Embedded Images"

Exist some way to add the Content-ID in the attached files.

$params["attachments"][] =  array(
      'fullPath' => $output,
      'Content-ID' => 'attachementsignature' //Something like that
    );

Info "Inline Embedding", "CID Embedded Images" in
https://sendgrid.com/blog/embedding-images-emails-facts/

@Sudesh After apply the patch, I used a token, because i needed a custom field in the image, maybe works for you(the answer don't fit in comment :S)

The cid require a mail format for example foo@ba.org

hook_civicrm_tokenValues( &$values, $cids, $job = null, $tokens = array(), $context = null ) {
...
 $values[$key]["xxx.app_signature"] = '<img alt="Embedded Image" src="cid:foo@ba.org" >' . '<tagimagetoken>' . $config->customFileUploadDir . $result_image["uri"] . '</tagimagetoken>';

And later replace the token with correct value in the mail hook

hook_civicrm_alterMailParams(&$params, $context) {
  $regex = "/<\s*tagimagetoken[^>]*>([^<]*)<\s*\/\s*tagimagetoken\s*>/";
  preg_match_all($regex, $params["html"], $output);
  if(isset($output[1][0])) {
    $params["html"] = preg_replace ( $regex , "" ,  $params["html"]);
    $params["attachments"][] =  array(
      'fullPath' => $output[1][0],
      'content_id' => "foo@ba.org",
      'c_type' => "image/png",
      'is_file' => TRUE,
      'is_image' => TRUE,
    );
  }
}

And in the email put the token


ACL role assignments not showing on screen, but still working When I go to civicrm/acl/entityrole it shows no role assignments and says "There are no Role Assignments. You can add one now."

But they exist, have not been deleted and are still working. I can see them in the database table (select * from civicrm_acl_entity_role;)

Anyone else have this problem? It looks like a bug

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

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

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

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


CiviMail was sending mails, now it isn't I could really use some guidance on how to troubleshoot this. This morning, we sent an email out to about 100 addresses using CiviMail and it worked fine.

Now, we can't. We didn't make any changes in the meantime. I can't send a test email, and when we schedule a job and the cron runs, CiviCRM shows it as successful, but no one is receiving emails.

When I log the mail to a file, we can see it going there, it's just not getting sent out. Other mail from contacts or the test mail() function still works.

I've checked the logs and can't see anything. Our hosting provider is not being helpful right now, and I could use some other guidance on information I can provide them to help troubleshoot. I could also use some suggestions on where to look in Civic.

I know everyone says "it used to work". Honestly, it really did.

We are using 4.7.15 with wordpress.

I had exactly the same problem.. emails going out fine for months then BAM! nothing other than an error. I fixed it by updating our SparkPost API Key.


Will Installing Updates in Civi and Drupal mess up my website? I know I need to update Civi (5.17.5) and Drupal (8.7.8) - My question is, is there anything I need to be aware of -- changes with the site or with Civi in the background -- that will alter how we use these sites? Or will largely nothing change what I have going on?

Thank you!

It's always recommended to test the upgrade on a copy of your site first. A guide how to make a copy is at https://docs.civicrm.org/sysadmin/en/latest/misc/switch-servers/


Profile is disabled OR it is not configured I made the mistake of messing with an extension today, and now if I go to "search" for a contact using advanced search or find contacts, i receive this error: Sorry but we are not able to provide this at the moment.
The requested Profile (gid=24) is disabled OR it is not configured to be used for 'Profile' listings in its Settings OR there is no Profile with that ID OR you do not have permission to access this profile. Please contact the site administrator if you need assistance.

I have no idea what I would have done that would have triggered this error.  Any assistance would be greatly appreciated.

Thanks,
Matt

The gid is the ID number of the profile.  Something is calling for that profile, but it can't/won't pull it up for one of those various reasons.

Two factors to consider:

What is profile 24?
Why is Advanced Search trying to use it?

My hunch is that CiviHR creates a special profile and sets it to be used as the default search view.  You can customize the columns you see when you run a search, and to do it, you set up a profile with the fields you want.

First, go into your profiles administration page and look for the one with ID 24 (looking both in the User-Defined Profiles and the Reserved Profiles).  If there is none, that explains why it can't be found.  If you find it, click Settings and check all the "used for" boxes.  See if that helps.

Next, check your search preferences (Administer - Customize Data and Screens - Search Preferences) and see if a Default Contact Search Profile is set.  Set it to None and save.


Donations Page with recurring and one time Is it possible to design a single donation page that offers both recurring and one time?  I'm trying to avoid two separate forms.

I have Webform for Civi setup as well as eWay.

If yes, any links would be appreciated.

Thanks.

I'm not sure about the integration of this with Webforms (I assume you can do it), but if you can use a regular CiviCRM contribution page, you'll be able to set up a page that offers both recurring donations and one time donations.

Under Contributions>Manage Contribution Pages>"Your contribution page">Amounts tab

You will see a field to define fixed donation amounts:

You will also see a field to define whether you'd like people to define their own donation amounts:

The third field you want to pay attention to is for defining recurring contributions as you'd like to. This will put a checkbox where a user can decide whether they want to make a recurring donation or a single donation:

Put it all together... and your CiviCRM contribution page will look something like:


Display the payment vehicle (cash, check,...) of a contribution in a receipt I'm supposed to change the message template used when you wanna make a PDF receipt of a contribution. I found the template and started to modify its HTML code, unfortunately I'm not able to display the payment vehicle (cash, check,...). I tested a few tokens ({$payment_instrument} for instance) found on the internet but it didn't work. And I don't really know where I'm supposed to find all of the tokens (yes, I'm a bit of a beginner...).

Thanks !

I think you can use Smarty to retrieve the payment instrument in your template. You can play with API explorer to return this value -

Copy the contents in smarty section and add it to your template. Eg -

{crmAPI var='result' entity='Contribution' action='get' id=<contribution_id_variable>}
{foreach from=$result.values item=contribution}
  {$contribution.payment_instrument}
{/foreach}

In the above statement $contribution.payment_instrument should hold a value of the payment vehicle.


What does the 'access_civicrm_nav_link' permission allow? I'm currently reviewing the permissions for a CiviCRM/WordPress site. Some of the user roles have the 'access_civicrm_nav_link' permission but I'm not sure what this is used for.  I couldn't find any documentation for it except for a reference to it in one of the WordPress integration files:

/CRM/ACL/Form/WordPress/Permissions.php

Am I right in thinking that this permission dates back to an earlier version of CiviCRM and is no longer used?

Is it safe to remove this permission from the user roles?

CiviCRM 4.6 / WordPress 4.5

If you do a search at https://github.com/civicrm/civicrm-core and https://github.com/civicrm/civicrm-wordpress there's a note about it being changed and the lack of search results indicate it's no longer used.

EDIT: At github you can go back as far as v4.4 and see that it's not used, and while the old svn repo is no longer available you can see from https://issues.civicrm.org/jira/browse/CRM-12731 that it was used at that point and possibly even removed as part of that issue, somewhere around 4.2.


CiviDiscount based on group membership CiviDiscount gives an easy way to say, "Members get a lower price on a certain event", but I have the opposite situation - "attendees of a certain event get a discount on a membership".  Can anyone tell me how to do this?

It seems like I should be able to use the "advanced API filter" to find event attendees - but I can't find any examples of how to use that option.

Would using the Group Based Pricing extension be an option? You could then in theory create a smart group for those contacts that have attended the event and use that group in the price configuration?


CiviCRM Entity and ACL Permissions We are a federated political organisation migrating to CiviCRM 4.6. I have integrated  CiviCRM with Drupal views and civicrm_entity so we can create customised search pages for local organisers.

I'm finding civicrm_entity and various fuzion extensions to be excellent help, but setting up permissions across a large grassroots organisation is still complex. We are currently managing this with a combo of permissioned relationships and auto-generated smart groups.

Question:

Currently, to view entity via civicrm_entity (at e.g. civicrm-contact/[id]), a user seems to require the 'view all contacts' Drupal permission.

Is there an easy(ish) way to make civicrm_entity respect CiviCRM ACLs? Or at least check that the logged in user has permissioned relationship with that contact?

thanks,
L

I wish i would have seen this question earlier, I can certainly help you out.

checkout civicrm_entity.api.php in the civicrm_entity module

I don't believe the controller is checking the ACL's when loading an entity. We may be able to add 'check_permissions' => True to the call there in civcirm_entity_controller.inc CivicrmEntityController::loadEntites... food for thought, make a feature request in the civicrm_entity queue if you still need this.

Alternatively

There is a hook, hook_civicrm_entity_supported_info() that you can implement and add entities to be exposed by the module or alter settings for the currently exposed entities.  See the api information for full details.

Here you can alter what permissions are necessary to view/add/edit/delete entities via the CiviCRM Entity Drupal based forms or even set a custom callback.

function MYMODULE_civicrm_entity_supported_info(&$civicrm_entity_info) {
      $civicrm_entity_info['civicrm_contact'] = array(
        'permissions' => array(
          'access_callback' => 'MYMODULE_some_custom_callback_name'
        ),
      );
    }

This will tell CiviCRM Entity to use your custom callback instead of 'user_access'

Your callback will look something like this:

    function MYMODULE_some_custom_callback_name($op, $entity_type, $entity, $account) {
      if (is_null($account)) {
        global $user;
        $account = $user;
      }
       if($entity_type == 'civicrm_contact' && $op == 'view') {
         // fetch contact_id for user via a uf_match api get call
         // do your custom permission check
         $rules = getAllByContact($contact_id); //maybe get the acl rules for a contact
        // determine whether the contact can view with some code here
        // then assuming the contact can view the contact
        $contact_can_view = TRUE;
        // or if not
        $contact_can_view = FALSE;
         return $contact_can_view;
       }
    }

see some useful information about getting ACL rules for a contact here:
https://wiki.civicrm.org/confluence/display/CRM/Access+Control+List+Permissioning+Specification


Workflow for new constituents. How to add a doc verification step? Relative Noob here.
With my relatively out of the box installation I have new users joining the org via a membership contribution page.
I can use the profile-advanced settings to automatically add the people to an "active member" group once the dues are paid (either by cc or by cash/check).
That works well.
But,  I now want to add a new step where a club administrator needs to verify a document for all new members.
The workflow would be something like
Non-Member
↓
[uses a registration/contribution page to join]
↓
If cash/check   --yes-->   They get queued in pending payment
↓                          ↙
↓   cc                  ↙   admin registers pmt
↓                     ↙
User enters a new state pending verification of document, maybe via profile-advanced-grp
↓
[Admin verifies, just like an admin can confirm payment]
↓
user is now a full active member

Can someone recommend some good reading material that might be helpful here?
I see member rules that might be a good start

Is there an easy strategy to get an admin action working to have an admin kick a user from State-A to State-B once they verify the document?
Thanks

One part of your flow that isn't clear is: what happens if someone registers with a cc and then is rejected? You probably don't want to have to refund a cc, right?
For a similar setup, what I did was to limit the payment method to pay later and set the instructions as "sit tight until you hear from us", and then after the validation/approval process, they were sent an invoice that they could pay by cheque or using a credit card (you can pay an invoice via cc using a direct link in the invoice if you set it properly).
The only wiring necessary was the notifications, which can be done in various ways.


CiviCRM 5.9.1 on Joomla 3.9.2 Problems with the language I've made civicrm (5.9.1) in a Joomla 3.9.2 installation. Only the English language is available, I find nowhere as I can change the language in German. Do you have a tip for me?
Greetings Michael

Michael, Welcome to Stackexchange. The language will be available if you have downloaded and place l10n folder in civicrm.

To configure CiviCRM to use an existing translation:

Download the translations distribution -
civicrm--l10n.tar.gz - from the CiviCRM Sourceforge
downloads site. This tarball contains all files for the latest
available translations.
Uncompress the tarball and you will see a directory called civicrm,
containing two subdirectories called l10n and sql. The l10n
directory contains a set of sub-directories named using their locale
codes. (Example: the Canadian French translation files will located
in /civicrm/l10n/fr_CA)
Copy this l10n directory, together with all
    its subdirectories into your CiviCRM codebase root directory. (note
    if creating the l10n folder manually it should be ell-ten-n, not
    capital-I-ten-n)

For Joomla this would be
   site_root/administrator/components/com_civicrm/civicrm. So if you
   wanted the en_GB language it would look like this

site_root/administrator/components/com_civicrm/civicrm/l10n/en_GB/

For Drupal this would be site_root/modules/civicrm. So if you wanted the en_GB language it would look like this site_root/modules/civicrm/l10n/en_GB/

Login to CiviCRM (as a user with "administer CiviCRM permissions").
Go to Administer » Localization » Languages, Currency, Location
You should now be able to see and select all the localization
options in the Default Language and drop-down menu. If you don't,
and instead can just see the default 'English (United States)'
option, check the preceding steps as the drop-down options are set
by the directories under your l10n directory. Also be sure to
confirm that the l10n directory is correctly named as l10n (that is:
el-ten-en and not eye-ten-en).

Cheers

Pradeep


Specify a recurring gift period? I'm interested in setting up a 3-month sustainer option — one gift each month for October, November and December. Is it possible to configure CiviCRM to do this? Or, if that's not possible, could I configure it to set donors up as monthly givers, but automatically cancel after the third gift?

Absolutely - you can configure things such that the recurring series will be for 3 instalments only. That way you don't need to manually cancel them after the third gift.


Case Manager not updating correctly (CiviCRM 4.7.21) When I added some case roles and set the case manager to one of these roles it doesn't appear to update on the case summary screen.

Set up case
http://dmaster.demo.civicrm.org/civicrm/a/#/caseType
Add role
Set manager
View the case summary

No matter which case role I set the case manager to, it still shows as Case Coordinator is (Case Manager) in the first column of the table shown.

I think this is a bug, but if it is, has anyone else come across this?

We have found that this is a bug.

If you're a developer the function which isn't working properly is in: -
CRM/Case/XMLProcessor/Process.php
Line 199 was checking whether $relationshipTypeXML->manager was set, as opposed to whether $relationshipTypeXML->manager == 1


Can I use Webform CiviCRM Integration to always create a new contact? For a specific project we are using the Webform CiviCRM Integration extension for a form where the website visitor can sign a petition. Once this is done we want to use specific matching to find a contact or create a new one (using the apiWrapper hook).
This means I would like an option in Webform CiviCRM Integration to say that it should always create a contact and NOT try to find a matching one using the dedupe rules, is that possible?

(using CiviCRM 4.6.13 with Drupal 7.41)

I am not sure that I understand the question.

If you want every submission to create a contact without checking for an existing contact in CiviCRM, don't you do that by selecting -None- for the Matching Rule for contact 1.


Can I add non-contact fields (such as membership, contribution, relationship, etc) in bulk emails? I want to add fields from other modules, such as membership,contributions, relationships etc in bulk emails? I don't know php so I hope I can put the field name inside {}.

Is this possible?  If so, how do I know what the full name would be?
Thanks

The short answer is "not without extensions". It would be difficult, for instance, to say exactly which of a contact's many contributions you want to pull data from.

That said, other users have created extensions that give you many of the most commonly needed tokens. Check out the Summary Fields, Contributions Table, and Eileen's custom tokens, in that order.


Can pay-later instructions offer html format and plain text versions? This maybe should be a feature request.

I have complex "pay later" instructions, and I would like to display them in html format (which I can easily do) and provide an alternate version for folks who have chosen to receive plan-text email only.

Now I know I could just not use html tags and everything would look OK for both types of contacts.  But if it is possible to "conditionally" include the html format message and the text-only message, that would be swell.

Any thoughts?  Thanks!

You should be able to apply the strip_tags modifier to the {$pay_later_receipt} tag in your message template(s) in the text-only version.  As that page says, you might also consider the replace and replace_regex modifiers to handle newlines, etc.

Alternatively - modify the template to insert the "Pay Later" instructions directly into the template exactly as you like.


CiviCRM API page not displaying in Drupal I am developing for Gsoc this year and i got up one day to use the API explorer but the page somewhat fails to load. below is a screen-shot of the display

I've seen this once before and it was caused by a crash when fetching the list of entities. Do you have any custom code in place that defines a new entity? Try turning on debug & backtrace and run this from the civicrm home page in your browser console:

CRM.api3('entity', 'get')


Contact Dedupe Basics I'm new to CiviCRM and I'm trying to help a non-profit clean up what looks to be a very large number of duplicate contact entries.  I have searched this site and a few other resources and I have a grasp on the process, as I understand it.  While I'm new to CiviCRM, I have worked with many other database and CRM solutions.  Here are the two questions I have:

1) What are dedupe exceptions?  While most things related to CiviCRM and dupe are well documented, I've not located an explanation for this.  I assume it is some sort of white list of possible dupe contacts?  What happens when I remove the exception?  Do they become "eligible" for the dedupe rules engine?

2)  None of the General rules that have been setup will work.  The Supervised/Unsupervised rules work just fine when I use them manually.  What I'm experiencing is basically a very long period where I'm waiting on the database followed by an unable to perform at this time message.  Any thoughts on using General Rules.  I have tried various approaches but basically trying to match on 3-4 fields.  I understand the weight/threshold approach but it doesn't seem to be linked to that as much as to General rules. None of the rules I have setup nor the ones that existed before me seem to work as General rules.

Thanks in advance and please take it easy on a noob.   :)

Dave

Dedupe exceptions are those contacts that have been flagged as potential duplicates, but someone clicked the "Not a Duplicate" link next to them.  If you remove the exception, they can be considered duplicates again.

CiviCRM has two kinds of dedupe rules - those that you build and some pre-built rules that give much better performance.  Many of the default supervised/unsupervised rules are pre-built rules.  The rules you're building are timing out.  To deal with this, try increasing the server's PHP timeout or reducing the complexity of your rules.  Also - dedupe has received a lot of love in recent months, so consider upgrading CiviCRM to the latest 4.7 for a performance boost.

If you're handy with SQL and want to write a "pre-built" dedupe query, the hook is hook_civicrm_dupeQuery.  Veda's dedupe extension is outdated and may not work on current versions of CiviCRM but has a large number of high-performance dedupe rules.


Easily switch group of contacts to a newly created contact subtype I'm creating a new contact subtype, "Student", based on Individual. I've already got a bunch of individuals who I know are students, and I would like to quickly just convert them over to this new subtype.

What would be a simple solution to this problem?

Create a profile (Administer > Customize Data and Screens > Profiles) that includes the Contact field "Contact Subtype."
Bring up your desired group of individuals (whether through a search, group listing, etc.).
Select the appropriate individuals and use the "Batch Update via Profile" action.
On the next screen, select your Profile that contains the "Contact Subtype" field and click Continue.
On the Batch Update screen, select the Student subtype for the top individual, then click the Copy icon next to the column label "Contact Subtype."  That will copy the Student subtype selection all the way down the list. Scroll down to the bottom of the page and click "Update Contacts".

You're all set!

Note: the limit for Batch Update via Profile is 100 contacts, so if your number is greater than 100, you'll have to do Steps 3-5 multiple times.


When sending SMS messages - contacts must have mobile phone set as primary Is there a reason for this restriction or is this a bug or a new feature request to have it changed?

I expect SMS messages to be sent to a contact if at least one of their phone numbers is marked as a mobile phone number, even if it is not their primary phone. I suppose it might be confusing if they had more than one mobile number, but picking the first of several mobile numbers would seem preferable to simply not sending a message if no mobile number is picked.

Also - this restriction seems limited to sending SMS as an activity. I can still send a Mass SMS to contacts even if their primary number is not a mobile number.

I tracked down the bug here:

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

CiviCRM is suppose to send to your mobile number even if it is not the primary one.


`Failed opening required 'Log.php'` trying to install I'm attempting to install CiviCRM 4.6.19 in order to perform a migration and am completely stumped on something.  This is going into a Drupal 7 site and the entire thing is being put together with Drush make.

I am attempting to load the installer at /sites/all/modules/civicrm/install/index.php, which throws an error back at me - Fatal error: require_once(): Failed opening required 'Log.php' from path/to/civicrm/CRM/Core/Config.php on line 39, which brings me to here - https://github.com/civicrm/civicrm-core/blob/4.6/CRM/Core/Config.php#L39

As you can see from the rest of that directory there is no Log.php or Mail.php.  I have been trying to figure out for the last two days is something is wrong with an autoloader somewhere, and those files should already have been loaded somehow, but I am wondering if anyone knows what the heck is going on.

Many thanks in advance.

@jGrubb a number of files like Log.php and Mail.php will be from the civicrm-packages repo. This is a repo of 3rd party Packages which civicrm needs to work with. https://github.com/civicrm/civicrm-packages/tree/4.6


Why do my buttons keep becoming numbers? After updates our Civi installation (which is within WordPress in case it matters) often switched all buttons to numbers instead of their labels.
I presume this might have something to do with translation or templating? It tends to go away when I do all the usual post-upgrade things like clearing caches etc, but no amount of fiddling is fixing them this time.
Can anyone suggest what could be related? What can I try? What might cause this?
It's happening to all Civi buttons on the frontend and the backend, but not any non-Civi buttons.

I upgraded from 5.28 last night and ran into this same problem. I had an old version of haystack theme installed which was causing the problem (disabling the theme would bring the labels back).
You'll want to disable and uninstall haystack, delete the directory from your wp/uploads/civicrm/ext/ directory and then install the updated theme from here: https://lab.civicrm.org/extensions/haystacktheme
That fixed it for me.


Change group after a mailing is scheduled results in mailing still being send to the original members When we schedule a mailing in civimail we use a normal group (not a smart group) as the target audience for this mailing. Prior to 4.6.2 (we think), we could change the group before the mailing was send (even though it was scheduled) and the changes to the group would be taken into account when the actual sending of the mail occurred.

We are now on version 4.6.4 and looked into the database a bit to see what happens when somebody schedules a mailing. It seems as the schedule button fills the "civicrm_mailing_recipients" table and this table is used when the mailing actually starts. So adding a contact to the group(s) you used does nothing.

Is this behavior correct/by design? And is there a workaround to get the latest group members when the mailing actually starts?

This is a duplicate of CiviMail and Smart Groups: when does CiviCRM identify the actual list of email recipients?.  I don't think your fix is likely to be accepted upstream for the reasons Lobo provided on that ticket.  That doesn't mean you can't use this fix if it works for you, of course, just that it can't be merged into the upstream code.


Password field not displayed in contribution page I have created a contribution page in civicrm and included profile with account creation required option enabled. But only Username field is displayed but not password and confirm password field.I'm using drupal 7 with civicrm. please suggest

This is the default behavior of Drupal, and is by design.  It works the same way if you register a new account through the "New User Account" page in Drupal - assuming you don't have a module installed that modified this such as User registration password or LoginToboggan.

When a new user registers, the account will be created, and they'll receive an email with a one-time login link.  They can set their password there.

This isn't something you can modify without writing custom code.  This isn't really desirable because you'll need to make sure you're respecting the password complexity rules of Drupal.  Making a user deal with this while making a contribution is going to reduce your conversion rate.


Unwritable Extensions Directory When I go to the Admin > Extensions > Add New, I get the following error...

"Directory Unwritable Your extensions directory is not set or is not writable. Click here to set the extensions directory."

When click on the link, it takes me to the Settings - Upload Directories page, but it is totally blank.

Any clues please?

I guess you dont have write permission on Extension folder

What you need to do is try to find if you have Extension folder already

Administer -> system setting -> Directories -
look for CiviCRM Extensions Directory

you should find a path in Civicrm 4.7.x ext folder will be created against the below location -

.../sites/default/files/civicrm/ext

If folder exist then try to navicate to the location in Command prompt or Winscp and provide write permission to the folder - this should fix the issue

refer to the below link - additional reading

Are there recommended directory ownership and permission settings for CiviCRM files?

https://forum.civicrm.org/index.php?topic=10545.0

I guess this helps!!!


UK Counties list not complete - can this be amended by user or does it need to be amended in the core program? The drop down list of UK Counties does not seem to include Middlesex.  Can the drop down list be amended?

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


CiviCRM Scheduled Jobs Timezone Confusion I am running a CiviCRM deployment in a GNU\Linux environment. When comparing the times reported by https://example.com/civicrm/admin/job (Settings - Scheduled Jobs) with https://example.com/civicrm/admin/joblog (Settings - Scheduled Jobs Log), the times reported are different.

In the first, the jobs overview, times seem to be reported in Drupal's timezone.  In the second, Scheduled Jobs Log, times seem to be reported in the user's timezone.  Is this intentional or a bug?

PHP version 7.3.8
Drupal version 7.67
CiviCRM version 5.18.2

The server's time zone is CEST
The Drupal time zone is Europe/London
My user's time zone is Europe/Berlin

I have tried to reproduce this in demo systems, but the ones I tried, understandably, restrict admin settings.

Any thoughts?

This question is now resolved.  It is not a bug, but a server misconfiguration.  I am adding the resolution here for posterity.

It turns out the issue was caused by the server being set to Europe/Berlin, but PHP-FPM defaulting to UTC.

Setting PHP-FPM to Europe/Berlin through its configuration file solved the issue.


What could trigger a transaction rollback on contact save? I have a few contacts in CiviCRM 4.7.27 for which changes in the "edit contact" form are not saving. The update queries are being sent to MySQL correctly, but they're in a transaction which is being being ended by a ROLLBACK statement, which obviously undoes the changes.

For all other contacts, changes save just fine, with no ROLLBACK.

Example queries from a single "Save" form submission:

UPDATE  civicrm_contact  SET contact_type = 'Individual' , contact_sub_type = NULL , sort_name = 'jones, jennifer' , display_name = 'jennifer jones' , first_name = 'jennifer'   WHERE (  civicrm_contact.id = 3198 );
UPDATE  civicrm_uf_match  SET domain_id = 1 , uf_id = 6839 , uf_name = 'jnphillips_22@msn.com' , contact_id = 3198   WHERE (  civicrm_uf_match.id = 2754 );
UPDATE civicrm_group g SET    cache_date = NULL, refresh_date = NULL WHERE  g.cache_date <= '20180503151700';
UPDATE civicrm_setting SET value = 'LnnjD1Un' WHERE name='navigation' AND contact_id IS NOT NULL;
UPDATE civicrm_contact SET  email_greeting_custom = NULL , email_greeting_display = 'Dear jennifer', postal_greeting_custom = NULL , postal_greeting_display = 'Dear jennifer', addressee_custom = NULL , addressee_display = 'jennifer jones' WHERE id = 3198;
... (and lots of delete/insert on civicrm cache tables.)

How can I track down the source and cause of this ROLLBACK statement?

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

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

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

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

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

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


Start/member since dates not being set since upgrade to 5.3.2 We recently upgraded from Civi 4.6.23 to 5.3.2.  The upgrade has gone fairly smoothly, but today we discovered a problem where the Member Since and Start Dates are not being set for any new memberships started since the day we upgraded.  Though these members are being giving the status of "Current", they are not being given correct access to our site.

I've checked our error logs, and there are no errors.  I also checked the database, and the database does not have a Member Since or Start Date, and has no record of a membership in the member_log table.

In this picture, you can see that there is no date set for Member Since or Start Date:

If we got to edit the member, though, it does have a Member Since date.  But, still not Start Date.

I never found the cause to this, but ended up using a Rule in Drupal to set the member_since and join_date variables when a new membership is created.


Dashboard Summary on Memberships Page I've just found out that the Membership Dashboard - specifically the summary table at the top of that page - is not visible if you don't have the permission 'CiviCRM: view all contacts'. Is there any way around this?

We've just implemented ACLs on a site and the staff member looking after memberships would like the dashboard back...

This looks like a hardcoded limitation in CiviCRM, and changing that would require some development work (i.e., there's no workaround or trick to it, just needs code changes).

Interestingly, there's a comment in the code that indicates a desire to add support for ACLs instead of the sledgehammerish 'view all contacts' requirement: https://github.com/civicrm/civicrm-core/blob/master/CRM/Member/Page/DashBoard.php#L51

So my answer would be: yes, you're seeing it right; there's no way around this short of patching core, and it sounds like core is willing to be patched.


How CiviCRM works when a url hits I am new to CiviCRM. I just want to know how the back end process works in CiviCRM when a URL hits in browser.

Ex. http://localhost/test/drupal/civicrm/member?reset=1

When I am running this URL in browser what are the .tpl and php,js,css files are running

Also I don't have previous knowledge in CMS Coding and Extentions, Is there a step by step guide to understand CiviCRM

I think you are looking for CiviCRM documentation

There you will find:

CiviCRM developer guide - probably the most relevant place to start for you
CiviCRM administrator guide
CiviCRM user guide

In the Developer Guide you'll find pages like Codebase & Architecture which are a good starting point for your initial question.

CiviCRM Stack Exchange (this site!) is a great place to ask specific questions, and you should also join the CiviCRM community over on CiviCRM chat.


Clicking Membership on View Contact Throws Error won't display page Recently upgraded to civicrm 4.7.11
On joomla 3.6.2  php 5.6.23  mysql 5.6.29

I have just noticed when I click memberships Civicrm throws a unable to reach the server. Please refresh this page in your browser and try again.

I am able to click on contributions activities and events.

When I turn on logging and look at the log I'm getting in CRM_Core_Error::handleUnhandledException(Object(CiviCRM_API3_Exception))

["error_message"]=>
      string(41) "Expected one PaymentProcessor but found 0"
      ["error_code"]=>

I have two payment processors setup. One that I have had for some time and another I just created after this issue. They each have a row for the production and test. Only think I can think of is the payment processor id field starts at 7.

I haven't seen anything else on this.  Must be something specific on my site.
We have been running civicrm joomla 5 years now.

Donald, Could you help us with

From which version of CiviCRM did you upgrade to 4.7.11?
Are you using any payment processor extension like iAts, etc?
Could you check in db if you get 0 results by running the query below

SELECT ccr.payment_processor_id FROM civicrm_contribution_recur ccr
LEFT JOIN civicrm_payment_processor cpp ON cpp.id = ccr.payment_processor_id
WHERE cpp.id IS NULL
GROUP BY ccr.payment_processor_id

Could you also paste the result of below query?

SELECT cr.payment_processor_id as ppID1, cp.payment_processor as ppID2
  FROM civicrm_membership mem
INNER JOIN civicrm_membership_payment mp  ON ( mem.id = mp.membership_id )
INNER JOIN civicrm_contribution       con ON ( mp.contribution_id = con.id )
LEFT JOIN civicrm_contribution_recur cr  ON ( mem.contribution_recur_id = cr.id )
LEFT JOIN civicrm_contribution_page  cp  ON ( con.contribution_page_id  = cp.id )

Thanks
Pradeep


Setting up a view to list the current user's activity details bit of help appreciated please!
I'd like to create a view that shows authenticated users the details of some specific activities that've been added to their record (added by a different user, the target is the 'with contact').
Fields to be shown

Activity type
Activity description

Filter type

Activity type

Where I'm falling down is setting the relationship or context to limit the results only to the currently logged-in user. I've had a look through Stackexchange but couldn't find what I'm looking for - would anyone be able to assist?

have a look at this one. Not sure it has the Source v Target how you want it but it should provide an example of how to ensure the logged in User sees 'their' Activities. Good luck

In summary.

Create an Activities based View
Set the Relationship up in Views to join the relevant type of Contact to the Activity
Add another relationship to join that Contact to their drupal user.
Add a filter that sets 'current user IS Active) (or similar drupal description of the filter) and that Filter will use the Relationship you created above and mean it checks 'who is logged in' and then server up the Activities they are the Target of (or whatever Activity Contact type you need)


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

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

I have tried to figure out but cant seem to work it out? anyone tried, any suggestion please?

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


Payment Processor Error - Can't find valid value for PP I just installed Drupal 7 and CiviCRM 4.7.30 from the CiviCRM install package. The install worked just fine, but now that I'm trying to 'configure' CiviCRM I've run into errors when setting up Payment Processor or trying to create price sets.

For the Payment Processor, I'm getting CRM_Financial_BAO_FinancialTypeAccount::validateRelationship ... when I debug I get 'could not find valid value for pp'

For the New Price Set issue, I'm getting DB Error: Syntax Error.

I can't find anything on the support wiki, documentation, or WWW that would provide me assistance with these issues. I'm hoping someone in this exchange will be able to guide me. Thank you for your help.

I guess you have turned off CiviContribute component.


How to sort civimobile event participant check-in list? I will like the have the names of event participants listed alphabetically on the event check-in screen, how can i modify the civimobile extension (civimobile.participant_checkin.html) to list names alphabetically?

I have this code but it doesn't work,

CRM.api('Participant','get', {"sequential": 1,"options":  {"sort":"display_name"},
          'version' :'3', 'sort_name': q, 'event_id': eventId,   'participant_status_id': {1:1,2:2,5:5},
          'return' : 'display_name,participant_status_id', 'rowCount' : 500 },

    {
      success:function (data){
        if (data.count == 0) {
          cmd = null;
        }
        else {

I think it makes sense as the default behaviour. Can you go to the github project and add an issue there to talk directly with the developers and consider proposing that as a PR? https://github.com/webaccess/com.webaccessglobal.module.civimobile

The line you'll need to change is the api call, and add a "option.sort"="whatever is the field for the participant name" param (use the api explorer to find out the exact syntax and name of the field name)

https://github.com/webaccess/com.webaccessglobal.module.civimobile/blob/master/code/civimobile.participant_checkin.html#L35


Is it possible to create nested multiselect custom field? The use-case is a business directory. Businesses sign themselves up and provide info about their operation. There are many types of businesses (NAICS), and the options they need to self-identify as are nested in a multiselect format. Is this re-creatable with CiviCRM?

See image.

Thanks!

This is not possible via Custom Fields - this is possible via Tags.


How do we tie groups or memberships to a product and be able to mail with it? We are new to CiviCRM and have consulted both this forum and the book + videos. Still at a loss for a solution.

We have multiple publications with different people titles associated with it. (e.g. Publication A + Editor, Author, Reviewer, etc.). The titles can also be connected in another way (e.g. Editor + Publication A, Publication B, Publication C).

We attempted to set up smart groups with the Title + Publication (A,B,C) but then when we wanted to create a second smart group with Title2 + Publication (C,B,A) and have it connect to a mailing list, it said "error- that group already exists."

Q - How do we achieve the need of having to connect these titles and publications using groups or memberships?

Q - Can memberships be a smart group?

Q - Do we make Publications as a group, and Titles as a membership? Or use fields for one or the other?

Thanks in advance.

One approach to this would be to use Relationships. Make a Relationship Type of "Editor of / Editor is" that will connect Individuals with Organisation sub-type "Magazine".

Use that relationship to connect John as the Editor of the Jungle Journal. And similarly to connect Bob as Editor of the Birds Books.

Then you can make a Smart Group of all Individuals that are 'Editor of'.

Then repeat for the other Relationship Types, ie make one for 'Author of' and another one for 'Reviewer of'


Mailing List Activity Report I wonder if there's a way to get a report on a mailing list's subscription activity, showing signups and unsubscriptions.  I don't see this option on the activity report and none of the Mailing report templates come close.  I know that the information is available by looking at contact records.

Its not available by default by you install one of the below extension to have these feature availaible

Mailing Subscriptions Report

Group Growth

Subscription History

Thanks

Pradeep


Unable to create a new mailing I am editing this question to provide more information.  I am running CiviCRM 4.7.8 with WordPress 4.5.3. We are using php 5.6.23.

When selecting "New Mailing" from the "Mailings" menu, the screen is blank. Using inspector and console I can see that there are more than 70 errors.  The first error is on line 270 of the angular.js file.  It seems that there is a comment in the file that is not commented out. All other errors are related to angular, mostly angular is not defined.

So we are unable to do a new mailing. We used this feature early last week and it worked fine. We did not upgrade or install anything new. I tried to turn off extensions, but that had no impact. The extensions were installed prior so no reason to expect that is causing the problem.

Any ideas what would cause this and how to troubleshoot.

Update: We did a fresh install of civicrm, but that did not solve this problem. Also, we have a staging version, which is the same as production without data (a different database) and staging works, just as production worked a few days ago.

When I go into Unscheduled reports, all of my attempts to start a new mailing are listed, but when I click the option to "Continue" I get the same error message.

Found the problem. Debugging was turned on.  Once I turned it off "New Mailing" worked.


CiviEvent Overwriting Contact Info I am using a Civi install that was originally part of a Drupal installation. A month ago I switched over to using Wordpress and migrared the Civi install to Wordpress.

Since then, something weird has been happening with event registrations in CiviCRM.

Previously, under Drupal, if two people registered using the same email, it would create separate contacts for each person. Or, if someone registered using an email that was already in the database, it would do the dedupe search and either count it as the person if the first name, last name, and email matched, or else it would make a new contact if they didn't match perfectly.

Now, however, it automatically overwrites any previous entries when someone registers using an email that is already in the database. This is fine when it's clearly the same person, but for some reason, it is now overwriting even when a single part of the name is the same. So, for example, Bob Smith smith@company.com registers. Then Mike Smith mike@college.edu registers. Looking at the registrations, I now have 2 registrations for Mike Smith, and there is no registration for Bob Smith. Even just the same last name has caused the first name and email to be overwritten.

I am using the same default dedupe rule, but for some reason it is acting differently now. Does anyone understand what is going on, or how I can fix this so it behaves the way it used to?

Is it possible that you upgraded at the same time as you switched to WordPress?  Specifically, in 4.4 and earlier, events would match participants on email address only unless you checked the box to allow multiple registrations with the same email.  This was regardless of any dedupe rules you might have set up.

In 4.5 and later, an event will default to matching on the unsupervised dedupe rule, and you can choose an alternative rule on a per-event basis.  My suspicion is that your rule allows for false positive matches, and you haven't noticed the issue until the events started actually using the rule.

You might create a brand new individual unsupervised rule with the email address field, leave length blank, 10 as the weight, and a threshold of 10.  This will replicate the original situation of matching on email only.


How to provide a default sort on a custom search? There is a function helper

function all($offset = 0, $rowcount = 0, $sort = NULL, $includeContactIDs = FALSE, $justIDs = FALSE) {
  // delegate to $this->sql(), $this->select(), $this->from(), $this->where(), etc.
  return $this->sql($this->select(), $offset, $rowcount, $sort, $includeContactIDs, NULL);
}

But I'd like to set a sort order if not set. All the examples I found are writing directly their sql, as opposed to sql() that expect a CRM_Utils_Sort class (or that's what I understand based on the error messages)

So what I'd like to do is to add a

if (!$justIDs &&!sort)
   //how to initialise sort so it ends up like ORDER BY created_date)?

Custom searches inherit CRM_Contact_Form_Search_Custom_Base; check out the addSortOffset() function below (around line 177) to see how the sort is tacked onto the query:

public function addSortOffset(&$sql, $offset, $rowcount, $sort) {
    if (!empty($sort)) {
      if (is_string($sort)) {
        $sort = CRM_Utils_Type::escape($sort, 'String');
        $sql .= " ORDER BY $sort ";
      }
      else {
        $sql .= " ORDER BY " . trim($sort->orderBy());
      }
    }
    if ($rowcount > 0 && $offset >= 0) {
      $offset = CRM_Utils_Type::escape($offset, 'Int');
      $rowcount = CRM_Utils_Type::escape($rowcount, 'Int');
      $sql .= " LIMIT $offset, $rowcount ";
    }
  }

If you want to use an array it will send it to CRM_Utils_Sort::orderby(). I think you can set your $sort like this:

if (!$justIDs &&!sort) {
  $sort = array (
    'name' => 'civicrm_created_date',
    'direction' => 1,
  );
}

Would that work for you?


CiviMail - What is it? Need Info? How do I know if I can use CiviMail? What are the benefits? What does it do? How is it better or worse than just the regular email part on civicrm?

I cannot quickly find any links to more info on this? Can someone provide me with some more informatioN?

CiviMail is a mailing feature that interacts with your mail server much like the 'Email' action you mentioned. The main difference is design ability and ability to handle mass mailing campaigns to large groups of people.

Basically, if you are sending to more than 50 contacts at a time or you need to track email opens or clickthroughs - you should use CiviMail rather than the 'Email' action.

CiviCRM has good written documentation on CiviMail here: http://docs.civicrm.org/user/en/4.6/email/what-you-need-to-know/

(be sure to check out the other CiviMail sections around the linked section as well).

Edit: Bounce processing is another function that CiviMail is capable of. Processing bounces from your mailings is important to keep your sending reputation high in the eyes of other mail serves, to be sure your emails get through to people. This is especially important if you send using your own mail server and manage this yourself.

More info here: https://book.civicrm.org/user/current/advanced-configuration/email-system-configuration/

and here: https://wiki.civicrm.org/confluence/display/CRMDOC/Bounce+Handling


Case reports only work properly for originating user - bug or as designed (or both)? A user has reported that doing an 'Export to CSV' from a case report works OK when she does it, but doesn't work for a user 'B' - even though user 'B' has the correct access (we're using ACLs).  Masquerading as user 'B' not only does export to CSV not work, but user 'B' doesn't get access to the report criteria.  This is on 5.28.3 but I have a test system at 5.35.1. and it's the same. Other non-case reports work as expected for user 'B'
 If I create a case report when masquerading as user 'B' then the report works OK and export to CSV works too.  If I then masquerade as user 'C' and access the report that user 'B' created I don't get the report filter and cannot export to CSV.

I can't reproduce this when not using ACLs and also not on the demo site as it's not possible to add users.  Is this a known limitation of case reports or a bug? Or am I missing something else?  I'm surprised there's no discussion on here about this.

As per comments it sounds like the report is set to Add To My Reports on the access tab (making it private to the owner).


How to add a column in a membership report for a secondary email? I need to run a report which has a column for a secondary email.

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


Display CiviCRM Survey in Drupal Content Type I have created a CiviCRM survey (under Campaigns > New Survey in the CiviCRM menu) but would like to embed this survey into a Drupal Content type. How might I do this?
I am using

Drupal 7.37
MySQL 5.6.24
PHP 5.6.8

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

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

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


Extrnal API access. Status_code 414 I am progressing deeper and deeper into CivCRM intricacies, and work with External (https://) access of the database via API's. When performing a python
requests.get(....,entity=Contact,action=get) it works OK, and I get the data I request.
Next I tried to update the contact/membership with a payment via
requests.get(...entity=Contribution, action=create...) and the same for requests.post, both gave the same disappointing  status_code of 414. I also tried to get some more information and among the plethora of data dumped the following was "readable":
"is_error":1,"error_message":"API permission check failed for Contribution/create call; insufficient permission: require access CiviCRM and access CiviContribute and edit contributions"}, as well as a status_code of 414 (unknown to me)
I have now updated my access-capabilities (granted all "Edit Capabilities: Custom) in the role table in WP (where our CiviCRM resides), so I shall have all the rights mentioned above. Still the same problem. We run API 3 at present, but I do not think that is the problem here.
So here I am asking for some guidance, please!
Claes

You'll have an easier time modifying the permissions from within CiviCRM - Administer menu >> Users and Permissions >> Permissions (Access Control).  When changing permissions from WP, you're usually dealing with machine names, not human-readable labels, so it can be hard to correlate error messages with the particular permission needed.
It sounds like your REST user still doesn't have the Access CiviContribute permission.


CiviCRM Relationship error I am getting an error on my development site and i have tried everything to fix it but had no Luck.

***ERROR***
message:            unknown relationship create error Argument civicrm_relationship is missing.
code:
exception:          CRM_Core_Exception Object
(
    [errorData:CRM_Core_Exception:private] => Array
        (
            [error_code] => 0
        )

    [cause:protected] =>
    [_trace:PEAR_Exception:private] =>
    [message:protected] => unknown relationship create error Argument civicrm_relationship is missing.
    [string:Exception:private] =>
    [code:protected] => 0
    [file:protected] => /var/www/vhosts/site.co.uk/httpdocs/sites/all/modules/civicrm/CRM/Contact/BAO/Relationship.php
    [line:protected] => 139
    [trace:Exception:private] => Array
        (
            [0] => Array
                (
                    [file] => /var/www/vhosts/site.co.uk/httpdocs/sites/all/modules/civicrm/CRM/Contact/Form/Relationship.php
                    [line] => 565
                    [function] => createMultiple
                    [class] => CRM_Contact_BAO_Relationship
                    [type] => ::
                    [args] => Array
                        (
                            [0] => Array
                                (
                                    [hidden_custom] => 1
                                    [hidden_custom_group_count] => Array
                                        (
                                            [] => 1
                                        )

                                    [qfKey] => bf18a1feddecedf9bb2d0998921e2ecb_7909
                                    [entryURL] => https://site.co.uk/civicrm/contact/view/rel?cid=140&amp;action=add&amp;reset=1
                                    [relationship_type_id] => 27
                                    [related_contact_id] => 137
                                    [is_current_employer] => 1
                                    [start_date] =>
                                    [end_date] =>
                                    [is_active] => 1
                                    [is_permission_a_b] => 0
                                   ...

I have deleted the relationships re-added them but have had no Luck.

Thanks

The issue was i had rules setup with the wrong values hence why it wasn't working. After disabling the rules i am now able to add relationships.

I don't know how it worked but it has.


Multiple memberships Webform and Paypal I've set up a webform to create two memberships at a reduced rate vs two individual memberships.  I select two contacts, each has a membership.  The payment is associated with the first member.  There are options for 1, 2, or 3 years.  As an example, individual membership for 1 year is $15, and I want to register two people at the same postal address as members for $20.  Setting up the form everything looks fine, with some exceptions.  I can even use the feature to copy the postal address of the first member to the second member, cool.  One problem is that both members are given the option of membership type (1,2, or 3 yr).  In fact, what I want is the chosen term applied to both.  Only member one pays, and both get memberships.

Anyway, I fill out the form for both members and submit to PayPal standard.  I don't complete the payment.  I see a pending household membership for member 2 which presumably would show as completed if I actually paid.  But there is no payment for member 2, pending or otherwise.  Member 1 has no payment or membership record at all.

So, I thought I could probably work this all out if I was able to hook into the PayPal Instant payment notification (IPN).  I thought there would be some civiCRM hooks for this, but I don't see any.  So, I really need to know when the payment is completed and assign membership to both.

One problem is that both members are given the option of membership type (1,2, or 3 yr). In fact, what I want is the chosen term applied to both. Only member one pays, and both get memberships

I would try to tackle this via webform Conditionals, eg if the Memb Type for cid1 is 'not empty', hide Memb Type for cid2 or something similar


Shoreditch theme is not working when resource URL is "localhost" I installed CiviCRM V5.7 with shoreditch theme on localhost computer and looks good. I am accessing a site from another computer but not looking good (UI).As per the shoreditch extension, I put 'seven' as default theme.

Your screenshot shows the URL for CSS files at "http://localhost".  This suggests that either your CIVICRM_UF_BASEURL in civicrm.settings.php is incorrectly set to localhost, or that the same problem exists in one of the directories or Resource URLs (in Administer menu » System Settings » Directories or Resource URLs).


Submitting Cases on a Website We installed CiviCRM 4.6.5 on our Joomla site recently and enabled CiviCase. What is the best method for allowing site visitors to submit a form that becomes a case? We can't seem to find the obvious answer, if there is one.

Drupal Webform-Integration offers a robust solution for this. Unfortunately there is no equivalent for Joomla.


How can i investigate what duration a specific checksum had when it was sent out I need to check on some checksums to confirm if the duration matched the setting (which we had set at 90 days but mysteriously was showing as '7' again when i went to check the Misc. settings. Can anyone tell me which table the data is in?

Should this find it for me - if so I guess the field has an unrelated name

SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME LIKE '%checksum%'
    AND TABLE_SCHEMA='<my-database>';

The checksum is not stored in the database, have a look at CRM_Contact_BAO_Contact_Utils more specifically at the methods generateChecksum and validChecksum.

The genereateChecksum method returns the checksum like $checksum_$timestamt_$life the life is in hours, so for a given checksum you could tell when was generated and what was is expire date.

The validChecksum method takes the $contact_id and a $checksum  And validates it. This method is called when a profile/contribution/event/etc page is rendered and is taken from the requested URL.