Why does "from" email show a different list on single email versus bulk?

Sending an email using CiviMail is different from sending a one-off email to an individual contact, both technically and conceptually. Sending CiviMail is a much more fraught activity in terms of ip reputation, bounce handling, etc. since it is used to send thousand of emails or more. So it makes sense to have different rules, and one of those is to limit the different From: email addresses that allowed.

It sounds like you want everyone in your database to be able to send civimails from themselves? That doesn't sound like what CiviMail is intended for.

Perhaps you're looking for more of a mailing list functionality as provided by list serve type software (mailman, etc.)?


Working with Individual Contact Suffixes

I consider things like RN and MSW to be qualifications that should be dealt with in some other way rather than adding them to the suffix field.

A contact is always Charles Montague III but he is only a RN whilst he maintains his regisitration as an RN which will involve a certain number of hours of professional development and practical work each year.

If you need to be able to search for people with a particular qualification then a custom multiselect field to deal with them would be the best option I suspect.  The final option could be Other, and you would have an associated free text field so they can specify exactly what you have left off your extensive list.

Alternatively, if you just want to be able to tack these on after the formal name, then a free form text field may be easier.


Trying to provide some answers:

Depends on what you mean by support for accounting, can you define that in a little more detail? CiviCRM can store contributions, event fees and membership fees and will store them with a specific financial type, linked to a financial account. For each of those contributions, event fees and member dues it will also generate financial transactions. You can assign those transactions to an accounting batch, which you will be able to download in CSV format (or IIF out of the top of my head) which you can then import in your financial system.
It is certainly possible to communicate with CiviCRM from any type
of website using the API. So it will also be possible to create
online donations etc. If you want to use some of the standard
generated pages, you can probably do some by including the page in
your Wix website. But it will require some consideration about what
you want exactly, what the alternatives are and what the pros and
cons of each alternative are. Some of the NGO's I work with want
their public website and CiviCRM on separate servers for
security/privacy considerations (and it makes sense IMO). But the
consequence is that some of the nice and easy-to-use form modules
that allow easy access to CiviCRM data need some adaptation.
There is certainly technical assistance from a CiviCRM partner in
your region. There is as far as I know no Core Team technical
assistance because that does not fit into our community model. It
would mean having a big Core Team, while we have a small one
focusing on the core product and a large group of partners focusing
on supporting partners. So check where your nearest partner is
here. All of the contributors and partners you will find on
this list are active in the community and know their stuff when it
comes to CiviCRM. You can obviously also try to find another
organization that is not on the list that says they know about
CiviCRM, but you run a little more risk then with the listed
contributors and partners.


Normally contact merge process get skipped when there is something common in both contact and merge process unable to resolve it.

e.g.
address conflicts (same address type on both contacts).

on actual merge contact UI, we have option to override the record or add additional record with same address type.

You need to pass Merge Mode in api call.
string mode: "safe" skips the merge if there are no conflicts. Does a force merge otherwise.

more info at Is there any documentation for 'safe' and 'aggressive' merge modes?


Not yet officially. If you want to track progress you can subscribe to the ticket at https://lab.civicrm.org/dev/core/issues/1496 and its subtickets.

If you find some issue feel free to report it in a ticket there.

The money_format issue might be something you could look at. If you're testing I'd look closely at how money amounts are formatted on the screen and in receipts - that kind of thing.


Petednz is correct.  If a user is logged in, then they can change their CiviCRM e-mail address on a contribution form.  This won't change the Drupal address AFAIK; I'd be very surprised if it did.

If you also want to change the Drupal e-mail address, you'll need to write an extension (or hire someone to do it).  My Domain Access CiviCRM module is conceptually similar and will get you about 80% of the way there.  You can also check out CiviCRM Wordpress Profile Sync for inspiration, since that's the functionality you're looking for, but for Wordpress.


no menu error 500 after upgrade to 5.8.x

Andy, Welcome to CiviCRM stack exchange.

This is a weird error, since this function is already present in CiviCRM 5.8.1. But to trace the problem I would

Check if the function quicksearchOptions() exists in civicrm/CRM/Core/SelectValues.php.
Check if this file is being over-ridden by any of the extension or custom php
Check if civicrm/CRM/Core/SelectValues.php file is being invoked.

HTH

Pradeep


Best platform for a new website with CiviCRM: WordPress or Drupal?

I'd originally started my Civi 'journey' by bolting it onto our existing Wordpress site, and that was fine for holding contact details and sending out bulk emails/SMS.

As we started to use Civi more though, it became quickly apparent that we couldn't do many of the things in Wordpress that we'd like to. The lack of an equivalent to the Drupal webform module was by far the biggest stumbling block for us (with the views module coming close behind). The ability to receive webform input directly into CiviCRM was key for us - we wanted volunteers and our clients to be able to input data in a way that Civi's profiles just wouldn't allow if we had stuck with Wordpress.

It was a fair bit of work (and a steep learning curve for me!) for us to transition across to Drupal, but the ecosystem around it and the sheer number of available modules has made it more than worth it. If I was in your position, as a new organisation setting up a new site, I'd go with Drupal in a heartbeat.


Civisualize - How does it work and what are the charts showing?

We've decided to close the question as overbroad.


You are correct that latest.civicrm.org/versions.json is the canonical source for CiviCRM version information.

The file is quite new and the release-publishing script has not yet been updated to write to it (an issue has been filed for this), so at the moment it must be updated by hand.

I agree that the file should be under version control.

If anyone is available and interested in helping with either task, get in touch on #civicrm IRC channel, or by email to coleman at civicrm)


How to install Extension manually, ignoring certificate warnings?

I had to delete com.drastikbydesign.stripe.xml from the civicrm_extensions/cache folder, then use the Refresh button on the Extensions page.

Only then did it pick up that the Stripe Extension folder had been copied locally (rather than remote), and let me install manually.


How do I move a contribution from one contact to another?

This biz.lcdservices.movecontrib extension should do what you need but it has not been through the extension review process - use with caution.

  CiviCRM extension to support moving a contribution from one contact to
  another. This can be done through the contact's contribution tab or
  through a Find Contributions search result action.


CiviCRM_API3_Exception: "DB Error: constraint violation"

I share my solution for the problem. First of all, I did this because of a partially loaded database problem. I was getting this error when I did any CiviCRM version upgrade.

When I checked the database, the information in the "civicrm_domain" table was displayed as "5.14.alpha1.upgrade". However, because the site was an FTP update CiviCRM version 5.19.1 was.

First of all, I set up a backup of a time before 5.14 with a different subdomain. Then I upgraded the Joomla and CiviCRM version of this backup to the version I had problems, ie 5.14.1.

Then I deleted everything in the database, including Joomla tables. I have thrown the SQL files with the actual site data into the SQL files of the new subdomain. In the "civicrm_domain" table, I manually changed the version information to "5.14.1".

After that I started the update with the URL of CiviCRM 5.15.0 in Joomla Plugin Update and this time I didn't get "partially loaded database" error and the whole update was successful.

The only problem is that any update, installation and uninstallation of the CiviCRM plug-ins is displayed. I have raised a question for this error. You can also follow it if you want. Of course, that problem will be corrected.


Is it possible to find out who installed an extension update?

The extension wouldn't update itself.

If you have Detailed Logging enabled, you should be able to figure out who updated it by checking log_user_id in log_civicrm_extension.  If you don't have that:

Check the "last action" times in the Drupal "Users" list.  Is there only one person who was active?  Great!
Check your web server logs for the URL that updates the extension - something like https://mysite.org/civicrm/admin/extensions?action=update&id=net.ourpowerbase.sumfields&key=net.ourpowerbase.sumfields

You should be able to get an IP address, which, depending on whether folks access the site from one IP or not, should be able to give you your answer.


our developer resolved this as described here: https://issues.civicrm.org/jira/browse/CRM-21780


Dashboard problem after installing reverse proxy server

It turned out to be a hosting problem. The /etc/hosts file had two conflicting entries, associating the host name with two different IP addresses. So I removed one of them, and Bob was my uncle.


Searching for users by Total Contributions (CiviContribute, Drupal7)

If I read you right, I would recommend the Summary Fields extension which then lets you have a standard Custom Field for Total Contributions and you can build smart groups etc off that field.

(Note (Feb 2019) there has been very recent discussion about some blips with the latest release (https://civicrm.stackexchange.com/search?tab=newest&q=summary%20fields)


Meaningless error report when importing multi-value custom fields

It means the custom import inherits some code from the contact import, but in a way that isn't strictly valid (the parameters for the run() method are different than the parent). It would need fixing in core, and looks non-trivial, but it's a warning so the import should still run. Does it still run properly?


Setting up your custom checkbox field is fairly simple. See the chapter on Creating Custom Fields.

Yes you can create reports that filter based on multiple values in a custom field:


I'm not sure what fixed it, but I deleted my civi and browser caches, reinstalled the extension, and refreshed my view and transactional emails showed up and it works wonderfully, thanks Fuzion!


Getting Error Message from payment gateway

I did a workaround when i got this error:

Edit the Contribution page
Go to "Amounts"
click "Test Processor"
Save

I assume a prior processor wasn't showing up or configured after i reinstalled my server and re-enabled Drupal and CiviCRM.

By selecting a different processor, it fixes the problem. If you really need the original, i'm sure you can recreate the payment processor and set it.


The Base URL is set in civicrm.settings.php.  From your screenshot, it looks like you're running CiviCRM on Drupal; find civicrm.settings.php in <drupal root>/sites/default/civicrm.settings.php.


How to use Contact name if nickname is not present in bulk mail?

You will need to turn on CIVICRM_MAIL_SMARTY in civicrm.settings.php to use smarty templating for conditional and more complex logic.

Cheers

Pradeep


As Chris comments, it's weird that it's showing this. But you could always use a template.extra.tpl file to set the page title by Javascript.

Create a directory, if you haven't already, for template customisations. Then tell CiviCRM about it at Administer » System Settings » Directories which is at /civicrm/admin/setting/path?reset=1
Find the template name of the form that's being used from the comments in the page source of the page(s) you need to change. e.g. for all contribution pages its CRM/Contribute/Form/Contribution/Main.tpl.
Create the same directory structure in your custom templates directory and then place a file called Main.extra.tpl (using the example form name from (2)) and in that file place something like

<script>document.title="You're still on my website :-)";</script>

.extra.tpl files are processed after the main template file is, so this script will run and set the window's title.

It's a hack, and in this case sounds like it shouldn't be necessary, but it's something you can use.


Why are you allowed to set DB field length on Text fields?

being able to set a length make sense. As you describe, you might want to have the length limited, because it's a zip code, a country code, a whatever you know has a fixed length.

The problem is not on the database definition, but on the user interface, that should prevent being able to put more chars that the field can accept.

Where do you experience the problem? is this in the back-office or using profiles?

Would be awesome if you could correct civicrm core to the check is done at the interface level (don't make the field longer than what the database can store) instead of the ugly error triggered by the database.

(You might want to check on the next version of civi see if you're lucky and that has already been fixed)

X+


Activitiy's email content - how is it generated and can it be changed?

I think the template you're looking for can be found at Administer -> CiviMail -> Message Templates, i.e, navigate to civicrm/admin/messageTemplates?reset=1 and click on System Workflow Messages.

The template name is Cases - Send Copy of an Activity. Note that you don't need to enable CiviCase component to view this template. It is displayed by default and used to send emails to assignees(both case and normal activities).

Also, if you want to disable the sending of email to assignee for some activity types, there is a new configuration setting added at civicrm/admin/setting/preferences/display?reset=1.

The setting is only displayed when the above checkbox of Notify Activity Assignee is enabled.


Can Domain Access ensure that a civi 'admin' on domain-B can not login via domain-C and see contacts they should not see?

Seems this is possible in a fairly blunt way by using the domain_bonus_login_restrict module which is part of the Domain Bonus module


How can I give anonymous users access to a new page?

In your menu xml file the permission for a path defaults to "access CiviCRM" if not otherwise specified.

To specify it as completely open, use <access_callback>1</access_callback>

Here's an example: CRM/Core/xml/Menu/Misc.xml


Can a contact be matched with a campaign

Your question isn't completely clear to me. You can associate one person, or a few, with a campaign by creating a custom contact reference field for them.

You could also search for individuals who have been involved in a campaign in some way, e.g., donating to it, from Search > Advanced Search. You could then make a smart group from the results.


Click to go to contact record from report

This extension should help with your query –

https://civicrm.org/extensions/no-drill-down


What you're asking for isn't doable out of the box.  However, most spreadsheet programs (including Excel and LibreOffice Calc) will do this for you.  Here's a formula that I tested in LibreOffice and should work without modification in Excel:

=IF(ISERR((SEARCH("Volunteer",$A2))), "", "Volunteer")

Paste this into an empty column at row 2.  Replace both instances of "Volunteer" with the text of the tag you'd like in that column.  Change the "A" in "A2" to the letter corresponding to the column that contains your tags.  Your new cell will now contain (only) the tag you're searching for in your tags if it's present, or be blank if not.  Copy this formula down the page for all rows, and of course repeat in new columns for any other tags you want to track in other columns.

Note that if you're just doing this to count numbers, you're better off with something like this:

=COUNTIF(A:A,"Volunteer")


Problem local drupal 8/9 install civicrm: folder is not writable (on Windows)

On windows use attrib -r C:\xampp\htdocs\drupal\sites\default to make it writable.


Soft credit / honoree info in a token for Thank You letters?

Here's an attempt to address this with a token that can be used with Fuzion's CiviToken extension. With that extension installed, this token file can be added to a tokens directory in your custom PHP folder to provide a "Latest Contrib Soft Credit Name" token. (It checks the latest contribution and if there is a soft credit adds the name(s) in this token). The caveat being that it only checks the latest contribution and won't work for previous contributions.

https://github.com/laryn/nz.co.fuzion.civitoken/blob/master/tokens/latestcontribs.inc

File: tokens/latestcontribs.inc

<?php

function latestcontribs_civitoken_declare($token){
  return array(
    $token . '.softcredit_name' => 'Latest Contrib Soft Credit Name',
  );
}

function latestcontribs_civitoken_get($cid, &$value, $context){
  $params = array(
    'sequential' => 1,
    'contact_id' => $cid,
    'options' => array('sort' => "receive_date DESC", 'limit' => 1),
  );
  $softcredit_formatted = "";

  $softcredit_name = civicrm_api3('Contribution', 'getsingle', $params);

  if (isset($softcredit_name['soft_credit'])) {
    $connector = "";
    $i = 0;
    $total = count($softcredit_name['soft_credit']);
    foreach($softcredit_name['soft_credit'] as $softcredit) {
      $i++;
      $softcredit_formatted .= $connector.$softcredit['contact_name'];
      if ($i == ($total-1) ) {
        $connector = " and ";
      } else {
        $connector = ", ";
      }
    }
  }
  $value['latestcontribs.softcredit_name'] = $softcredit_formatted;
  return $value;
}


You could setup a custom field for the event (not the participants, but the event itself) such that you could input a schedule as needed.  More details here: http://book.civicrm.org/user/events/setup/


is there a maximum number of memberships?

CiviCRM is a free, open source software package. You can download it for free, and you can do what you like with it.

The number of contacts or memberships supported is not limited by licensing or restricted in any way. Practically speaking, the limit will be what your website hosting can support.

For most cases this is effectively unlimited - some CiviCRM sites have millions of contacts. Organisations of that size tend to spend more on hosting than smaller orgs. Your mileage will vary according to your needs. I know of sites running some thousands of contacts on "commodity" website hosting. While this works, it can be more work (and cost) than using a provider familiar with CiviCRM.

Getting up and running is the first step, but in future you'll likely need help keeping your site running well, ensuring your contact data is secured appropriately when updates are released, and configuring or customising the features your org needs.

You'll find there is a great community supporting CiviCRM and its users, with places like the forum and IRC. If your org has technical skills "in house" you'll probably be able to get up and running by yourselves. Even so, find some allies to help you on your way. You might find some orgs in your space or existing network who are using CiviCRM, and there are a range of commercial outfits supporting CiviCRM as well.

https://civicrm.org/experts
https://civicrm.org/ambassadors
https://civicrm.org/hosting-providers


Custom report with custom fields: Group By not correctly naming custom fields

I think the issue I'm running into is a result of this bug:
https://issues.civicrm.org/jira/browse/CRM-18055


Cannot create Drupal user, email: invalid!! (double exclamation is the error message, not my urgency)

An alternative approach now is https://civicrm.org/extensions/silent-user-registration so you only use CiviRules and don't use Drupal Rules.


You need to delete /media/civicrm/civicrm/ConfigAndLog/Config.IDS.ini file.

This will fix the issue.

This is clearly mentioned in Step 9 in the docs - http://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location . Make sure you (your provider) follow these instructions when moving CiviCRM to new server/location


Maybe the extension summary fields could be used as a base. Even though it probably does not do exactly what you want, it may be easier to build up on it insted of developing something completely new.

Or you could use the SQL-Task Extension.


Can nomination be part of the workflow for CiviCase?

I'm not sure you need CiviCase but it sounds like it could fit. You might also want to take a look at CiviGrant. For the form you might want to also look at https://civicrm.org/extensions/webform-civicrm-integration, especially if you're using cases since then it can generate a case from the form.

If not using cases, regular activities have both a submitter and "with contact" field to track submitter and recipient, or if you want to keep those fields for other purposes they can have custom contact reference fields.

The answer might also depend on what kind of reporting you need. For example cases might make it easier to count groups of related activities as one, e.g. if the same person gets nominated for funds again the next year.


CVV is being required in backoffice, even when it shouldn't be

This isn't a full answer, but we (Karin actually) discovered that by removing the redis caching configuration from the civicrm settings file, the problem went away.

This is a bit weird, since the problem I was looking at was the static code cache, but it sort of makes sense if the api call that pulls in the payment object could potentially be reading from the more permanent (usually mysql table) cache.

So, my best guess to this issue is that there is some code somewhere that is accessing the CiviCRM cache without using or knowing about the use of Redis.

On it's own, this just means we can't use the Redis cache for CiviCRM, but it suggests that there might be a bigger problem hiding in here.


I got CiviCRM to come back by manually entering the paths manually into the CiviCRM Settings Overrides in civicrm.settings.php file.  There were some more error but at least CiviCRM came back for me.  It is obvious that the Reset Paths is causing problem and it might have to do with the way UpdateConfigBackend is calling a URL for GettingStarted.php.  I am not a developer but they all seem to be linked.  I shared what I actually did in this posting at the bottom: 4.6.12 to 4.7.1 upgrade causes problems with directories, update paths and clear cache
4.6.12 to 4.7.1 upgrade causes problems with directories, update paths and clear cache


Contribution - Invoice Address layout is wrong. How to fix?

Initially i thought the address are rendered using format defined at Address Settings but i was wrong when i checked the message template. The message template is designed to use address format as

Street Address Supplement Address
Supplement Address State Abbreviation
City Postal Code
Country

I did some modification to message template so that State Abbreviation is between City and Postal Code. Can you try after replacing the content of Contributions - Invoice message template with the content from here?

HTH

Pradeep


First, CiviCRM is always available freely, and never for sale. You shouldn't be purchasing CiviCRM from anyone (CiviCRM installations are different). It's free to download, use, and install yourself, without limitations. If anyone is trying to charge you for a CiviCRM license, please take them to court for fraud by misrepresentation.

At which stage are you getting this? Which tables have been created in the DB?


REST API, iATS: How do I create a membership through the API without using CiviCRM's forms?

The iATS extension does not expose any api functions for assigning iATS "payment tokens" to contacts (not to be confused with CiviCRM tokens, a completely different thing).

The next version of the iATS extension (1.7) will use the CiviCRM standard payment token mechanism, so you can assign them that way.

You did check the super-awesome api explorer, yes? It makes using the api so much more fun.

Also, if you look at this file ...
https://github.com/iATSPayments/com.iatspayments.civicrm/blob/master/CRM/Iats/Transaction.php

... you might find some useful code for your purposes.


Event receipts for paid events contains extraneous information

After debugging I found that the code which generated the message values for contribution was also getting executed for Events. We just added a condition to check if its Contribution in CRM/Contribute/BAO/Contribution.php.

if ($this->_component == 'contribute') {
      $groupTree = CRM_Core_BAO_CustomGroup::getTree('Contribution', NULL, $this->id);

  $customGroup = array();
  foreach ($groupTree as $key => $group) {
    if ($key === 'info') {
      continue;
    }

    foreach ($group['fields'] as $k => $customField) {
      $groupLabel = $group['title'];
      if (!empty($customField['customValue'])) {
        foreach ($customField['customValue'] as $customFieldValues) {
          $customGroup[$groupLabel][$customField['label']] = CRM_Utils_Array::value('data', $customFieldValues);
        }
      }
    }
  }
  $values['customGroup'] = $customGroup;
}

Do we need to clean up this code? or anyone have any thoughts so we can add issues on Lab and raise PR for same


How to change the suffix of my contact to a UK style?

Are you referring to the suffixes drop down, Jr. Sn etc? if so…

You have full control of the list of suffixes:

From the CiviCRM menu –

Administer > Customize Data and Screens > Dropdown Options > Individual Suffixes

/civicrm/admin/options/individual_suffix?reset=1

From here, you can add, update and edit any of the options.


Can't find HTML Snippet in Profiles (Drupal)

This is available under Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.) (CiviCRM >> Administer >> System Settings >> Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.))

  Note: Try clearing CiviCRM cache if you still unable to see it under
  Misc.

HTH

Pradeep


In this particular use case, you may also want to consider modifying the County Lookup extension to pull in some levels of detail with Google Maps data.


Setting Different Fees For Sign Up and Renewal In Civicrm

We have a similar situation and use a separate contribution page for renewals.

The menu link for renewals takes them to an intermediate Drupal page that is only visible if they are logged in, and only members (or ex-members) have a login. On that intermediate page is the link to the renewing CiviCRM contribution form.

This isn't perfect but works for our case where new memberships include a book, renewing memberships don't and the difference in the fee is only $5.  If a lapsed member renews rather than rejoins we aren't fussed, we just don't send them the book.


Transfer Database to new location raised MySQL Error function already exists

The error suggests that you did run the import for the second time. The function cannot be created because it is already there. You can remove it with

DROP FUNCTION `civicrm_strip_non_numeric`

An alternative is to use the checkbox in phpmyadmin that is labeled add DROP TABLE / VIEW / PROCEDURE / FUNCTION

(To be honest: I am not a phpmyadmin user, I got this suggestion from What does the “Add DROP TABLE / VIEW / PROCEDURE / FUNCTION” checkbox do in phpmyadmin ).


Custom date field throwing DB constraint error "cannot be null"

I guess that shouldn't be a problem in set the column to null in the DB because those are custom field

I did manage to do the same testing against lower version in 4.6.15 and mysql version 5.6.25 - Which works as excepted

I guess this may be a issue with mysql version or in the code so just check with the lower version or wait till the next release and if you have the same issue then please raise an issue

I guess this helps !!


Why do multiple shortcodes on a single wordpress page not working?

You're not doing anything wrong JDM - it's just that Civi itself is unable to do this. The shortcode "teaser" is the next best thing, i.e. a way to show that Civi content exists and offering a way to navigate to the Civi content.


Fatal error: Class 'Symfony\Component\DependencyInjection\ContainerBuilder' not found

I had this in an upgrade scenario when I forgot to clear my templates_c folder. Clearing that folder solved the issue.


It's nothing to be worried about, though it is a minor bug.  The code there happens to look for the value of $defaults['is_deceased'] without checking to see if the $defaults array has a value with the key is_deceased.  Two things:

You might record an issue at https://issues.civicrm.org so it gets fixed.
You should probably turn off the error messages if this is a production site.  In the Drupal admin menu, go to Configuration, then under Development see Logging and Errors.  Select none under "Error messages to display" and save the configuration.  (This, by the way, is why a notice like this goes unnoticed.)


CIVICRM with MYSQL encrypted on ecryptfs

Linking to your other question which is similar but slightly different since it's about using encryption that's natively supported by mariadb: Civicrm on mariadb with data encryption.

For this question, I have used a similar tool encfs once for a non-civi setup to put the mysql files on an encrypted partition and it worked fine but the problem I had was the same as in the other post, that it partly defeats the purpose if you have to store the keys/password unencrypted on the same server, or else you can't do unattended reboots. It's a trade-off.


What is the correct REST URL in Drupal 8?

The comment above is right - the answer for this is very much in flux, and this is a temporary hack - but nevertheless, if you need a REST endpoint today, you can do this:

Copy the entire extern directories into your web/libraries/civicrm directory.
Copy the template for civicrm.config.php into web/libraries.

Here are the commands I used:
cp -r <drupalroot>/vendor/civicrm/civicrm-core/extern <drupalroot>/web/libraries/civicrm/extern
cp <drupalroot>/web/modules/contrib/civicrm/civicrm.config.php.drupal <drupalroot>/web/libraries/civicrm/civicrm.config.php


VBO (views Bulk Operation) to send mails, mailings, ans SMSs?

Although CiviCRM entities are exposed to Drupal via CiviCRM Entity module, they are still not Drupal entities.

So in VBO even though you might think you can modify entity values to CiviCRM entities, it does not work very well at all.

Also in VBO even in Drupal you cannot send an email using this method. In VBO all you can do is modify entity values or execute a PHP script.

You would have to use a combination of VBO and Drupal Rules to send an email. And none of that would be recorded as a CiviCRM activity.

Not for me to ask, but using CiviCRM Scheduled reminders and inbuilt CiviMail would be a much easier option.


After upgrade to 4.6, should I get "No available releases found warning" in Reports->Available updates?

The 'no available releases found' is due to fact that CiviCRM is not distributed through Drupal.org's release infrastructure. The other enabled and disabled modules seem normal. If this doesn't address your concerns could you be more specific about what you are concerned about?


Case Manager not updating correctly (CiviCRM 4.7.21)

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


How can I update a particular activity/case via a webform?

You could create a View of Webform Submissions.  It's a bit more complicated, but you should be able to achieve it (if I understand you correctly).

Be sure to add the web form submission data (I think that's the one) relationship so you can sort and filter.

Additional thoughts:
I'm trying to get away from views of webform submissions as they are not fun to create/maintain.

Another alternative, and the way I tend to go now, is to create a View of CiviCRM Relationships with the current user in the contextual filter.  Include the contact id, case id and activity id fields in the view, but exclude them from the display.  Add Case Types and other pertinent info to the view to help distinguish each case and a global text field(s) that links to a new webform.

Create the new webform by cloning the original, on the CiviCRM integration tab change the case section to update existing case and/or activity.

Where your scenario gets tricky for me to understand, is the activity and the case together in one webform.  You may need to separate these into two new webforms.  One that updates a case and one that updates an activity and create two links in the view one like:node/new_webform_id?cid1=[id]&aid=[id_1] to update the activityand one like:node/new_webform_id?cid1=[id]&caseid=[id_2] to update the case.


Why are custom tabs not displayed correctly in contact summary?

Tried replicating the issue, but couldn't. Its working fine with Civi 4.7.19 on drupal 7.56 and theme 'Seven'. It maybe because of some conflicting css class.


This was a bug in CiviCRM which has since been fixed. You can upgrade to version 4.7.7 to fix your site.

See https://issues.civicrm.org/jira/browse/CRM-18378


Can you try to increase php variable post_max_size in php.ini or using php function ini_set().


CiviCRM Membership Status Change Summary Report

When a Membership changes Status an Activity of type "Change Membership Status" is created, and for your example, has the Subject of "Status changed from Grace to Expired". These factors can be used either in Find Activities, or Report civicrm/report/instance/3, or in Drupal to make a View, and if we use Aggregation, to get summary statistics as requested in the question.

I decided to give the latter a Proof of Concept and have attached it. IF this is useful to you (or anyone) please consider 'giving back' (and forward) by chipping in to our project to get CiviCRM working fully with Drupal 8 ;-) http://www.fuzion.co.nz/civicrm/contribute/transact?reset=1&id=4.

Hmm can't see how to attach file so have put in the Fuzion Treasure Chest at http://www.fuzion.co.nz/blogs/getting-summary-stats-membership-status-changes-view

And in order to fully answer the question, if you use the Views CiviCRM Dashlet module described here you should be able to set it up on your dashboard https://civicrm.org/blogs/brandonferrell/drupal-views-civicrm-dashlets


Issue on closing popup and showing message after doing any action in CiviCRM

Only that last line (starting with {"buttonName) should be present.  The rest looks like debugging code that was accidentally left in.

If this doesn't sound like something you may have done personally, try disabling extensions and re-enabling them one by one (or half at a time) until you've found the troublesome extension.

UPDATE: Since this code isn't in an extension, it may be in core.  I searched the codebase for the words "Object ID", which appear in your output - and for me they only appear in xml/schema/ACL/ACL.xml and CRM/ACL/DAO/ACL.php.  If you search YOUR codebase for the words "Object ID" you're bound to find them somewhere else.


DataTables warning with dedupe on find & merge (after upgrade to 4.7.18)

There's a fix for this issue in https://github.com/civicrm/civicrm-core/pull/10503. Hope this will be included in 4.7.21.


CiviMail problem; possible Cron Error: EntityMalformedException: Missing bundle property on entity of type node. in entity_extract_ids()

Turns out that this cron error is unrelated to CiviMail going out. I resolved the problem by changing the group owner and permissions of the /sites/default/files/civicrm/templates_c folder, which was effecting /mail.log. The group permissions was changed to root, which won't work for the mail.

I am still getting this cron error, but know now that it probably has to do with Drupal alone.


Adding dynamic data in CiviMail angular template

I've been recently digging into Angularjs, as I'm trying to make some customization, and this is what I figured out after a reading loads of blog posts covering the subject. I'm not an angular expert so I don't know how this affects performance.

The following script is from an extension using hook_civicrm_angularModules and Angular's $provide service in conjunction with the decorator function to intercept a CiviCRM directive and 'decorate' it to add/replace/extend behaviour, more info here.

Demonstration:

// myModule.js
  (function(angular, $, _) {
      // declare your module
      angular.module('myModule', []);

      // Hook into crmMailing module
      angular.module('crmMailing').config(function($provide){
         // intercept crmMailingBlockMailing directive, note the 'Directive' suffix
         $provide.decorator('crmMailingBlockMailingDirective', function($delegate){
              var directive = $delegate[0];

              // Original compile function
              var compile = directive.compile;
              // New compile function
              directive.compile = function(Element, Attrs){
                  var link = compile.apply(this, arguments);
                  // Append your custom directive
                  Element.append('

');
                  return function(scope, elem, attrs){
                      link.apply(this, arguments);
                  };
              };
              return $delegate;
         });
      });

      /*
      * Extending crmMailing
      */

      // Your simple custom directive
      angular.module('crmMailing').directive('crmMyDirective', function(){
         return {templateUrl: CRM.resourceUrls['uk.co.myextension'] + '/ang/directives/crmMyDirective.html',
                controller: 'ExampleCtrl',
         };
      });

      // Your controller
      angular.module('crmMailing').controller('ExampleCtrl', function($scope, crmMsgTemplates){
        $scope.$watchCollection('mailing', function(mailing){
            crmMsgTemplates.get(mailing.msg_template_id)
            .then(function(value){
                 mailing.msg_template_title = value.msg_title;
            });
        });
      });

    })(angular, CRM.$, CRM._);

Custom directive template

Template Id: {{mailing.msg_template_id}} | Template Title: {{mailing.msg_template_title}}

You can pretty much create your own services/factories, directives, etc or change the behavior of existing ones and hook it into the Mailing app.

Hope it helps.


How can I send mass email to all contribution page pcp owners?

This is definitely a blind spot in CiviCRM!  I don't think there's anything except a very hard way:  Write SQL to get the contact IDs, then import those IDs, assigning them to a new group.

To get the IDs of EVERYONE with a PCP, here's the SQL:

SELECT contact_id from civicrm_pcp;

If you want to get the PCPs associated with a particular contribution page, and that contribution page's ID is 12, here's the SQL:

SELECT contact_id from civicrm_pcp cp JOIN civicrm_pcp_block cpb on cp.pcp_block_id = cpb.id WHERE cpb.entity_id = 12 AND cpb.entity_table = 'contribute';

If it's an event page, change contribute to event.

Export that as CSV (this is trivial in PHPMyAdmin, for command line you can look up syntax).  Import the list of ONLY contact IDs to CiviCRM through Contacts menu » Import Contacts. On screen 4 of 4 of the import, you can specify a (new or existing) group to add your contacts to.  Once it's imported, you can mass mail the contacts.

Sorry it's such a hassle!  Hopefully an organization invested in PCPs will step up and fund a better solution.  If nothing else, a custom search would be easy to write.


Anyone else seeing an overlapping admin/civi menu bug with Joomla 3.8.13 and CiviCRM 5.6.0?

There was a commit that fixed css for shoreditch theme probably that might have caused the regression in Joomla. Can you try to replace the code from the commit and see if it works? If so I can file a issue and submit the patch for regression.


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.


How to add new membership if renewed after old membership expired (native CiviCRM / Drupal)

I do not believe this is possible as of CiviCRM 5.4 at least.

The logic is coded in civicrm/CRM/Member/BAO/Membership.php so the only way to override this is with a core override file, which is a maintenance headache since it will need re-working on ever upgrade.

This patch seems to make it work as I think it should:

diff --git a/civicrm/CRM/Member/BAO/Membership.php b/all/modules/civicrm/CRM/Member/BAO/Membership.php
index 18269014..7713ee9e 100644
--- a/civicrm/CRM/Member/BAO/Membership.php
+++ b/civicrm/CRM/Member/BAO/Membership.php
@@ -1860,6 +1860,14 @@ INNER JOIN  civicrm_contact contact ON ( contact.id = membership.contact_id AND
     $currentMembership = CRM_Member_BAO_Membership::getContactMembership($contactID, $membershipTypeID,
       $is_test, $membershipID, TRUE
     );
+
+    // -------Begin patch to create new memberships if last one had expired-------
+    if ($currentMembership && !$currentMembership['is_current_member']) {
+      // Force a new membership.
+      $currentMembership = NULL;
+    }
+    // -------End patch to create new memberships if last one had expired-------
+
     if ($currentMembership) {
       $renewalMode = TRUE;


How can I allow a participant to enrol for an event more than once?

Do you already have multiple roles supported for your events?, i.e via an extension like: https://civicrm.org/extensions/event-registration-based-participant-roles

A solution that would not necessarily be graceful would be to create multiple events (one for each role) and use the form to hit the different events based on the role.


If the organization's information in its Civi contact record is correct, then the next place I would look would be in the message templates (Administer > Communications > Message Templates, the templates for receipts are under System Workflow Messages).  You should be able to locate the information in those with a find - if you are not familiar with Smarty, however, be careful not to modify the code around the information as you might inadvertently break the template.  (It's probably a good idea to save the version currently in use before you start modifying, just in case you need to step back.)

Hope this helps,
Lesley


Cannot set sort order of custom fields in profile

The weight of the custom fields only controls the order in which they appear on the back end.  The profile sets its own order.  You can set the order from Administer menu » Customize Data and Screens » Profiles, then clicking the Fields link next to the profile you want to edit and using the "Order" buttons (see screenshot).


The simple answer is YES, it is possible to use CiviCRM without coding. You will need hosting and installation, and if you do not want to do that yourself either there are enough suggestions in the other answers. But I concur with William that you would best start with reading the user guide.


Deactivating Events - Registration Cancellation Notice

This could either already solve your question and if not give a very good idea of where to look: https://civicrm.org/extensions/prevent-sending-event-registration-confirmation-back-office


As Pradeep responded to your original question,  there is a  contact dashboard that will display information about a person's activity (e.g. contributions, memberships, etc.).

Syntax is important when asking questions - a price set is an entity that is used in conjunction with contributions and the contributions will have a given status. You specifically mention the "Overdue" status which is used with pledges, not with contributions - in your original question it sounds like what you want to use are contributions for membership payments (you can use either pledges or contributions, but not both).

You could create a custom membership status rule called "Overdue" and have that be the status assigned to memberships that would otherwise be in "Grace" or "Expired" status, but on the contact dashboard, it will still be listed as "Expired / Inactive Memberships" (at the bottom of the first screenshot below) unless you have word replacement in place. Before word replacement, the contact dashboard would look like this:

Using word replacement to replace the original text of "Expired / Inactive" with "Overdue", the dashboard will look like this:

If this was not the response you were looking for, please try to elaborate further.


Migrating Drupal to wordpress redirect existing links

You can keep the URLs you're currently using - as long as you're using a recent version of CiviCRM - simply by adding this to your wp-config.php file:

define( 'CIVICRM_CLEANURL', 1 );

This will create URLs in the same format as Drupal ones, i.e.

https://domain.com/civicrm/event/info?reset=1&id=3

This does assume that you are using the default base page named "CiviCRM" with the slug civicrm. If this page doesn't exist, then create it and add the slug to the setting in the CiviCRM "CMS Database Integration" admin page. You may also need to visit the WordPress "Permalinks" page to refresh your rewrite rules so that Clean URLs work as expected.


what happened to saving reports as dashlets?

It's working fine on 5.25.0 for me.

EDIT: You must go to Access tab > enable Available for Dashboard > select actions drop down > select Save. (Not view results).

That appears to be the misstep. Clicking View Results does not save the report. There is valid reason for having the save v. view results functionality as there is the permission save report criteria. Sometimes you may want someone to access and modify the report for one time use but not save it for everyone.

Then On CiviCRM Home, you have to click  Configure Your Dashboard and drag it into dashlet area.


How can I track donations made as a result of a particular email?

The easiest way to do this (whilst not 100% foolproof) would be to create a special donation page for the link in the email (i.e. separate from the donation page that presumably appears as link and 'proper' page on your website).

Go to Contributions >> New Contribution Page or Administer >> CiviContribute >> Manage Contribution Pages.

Then once your new contribution page is complete, simply copy the URL you get from Links >> Live Page into where you have the donate link in your emails. It will look something like https://your-site.com/civicrm/?page=CiviCRM&q=civicrm/contribute/transact&reset=1&id=2

As long as you don't link to that URL from anywhere else (like a button on your website), it should only ever be used by someone clicking on an email. You can then use a Contribution Report for that particular donation page.

It looks like you may also be able to do it with custom fields and passing URL parameters, but that's more complicated. See this entry in the wiki, from 2014: https://wiki.civicrm.org/confluence/display/CRMDOC/Update+custom+fields+in+contributions+and+events+by+passing+variables+in+a+URL


Is there a way to search/export potential duplicates?

There is no direct way that I am aware of, but you can call the dedupe function in the BAO from an extension?


Upgrading Custom Extension for PHP 7: How to I instantiate a mysqli data object

CiviCRM has its own database abstraction layer that can handle the escaping for you, so you don't have to use low-level functions like mysqli_real_escape_string. You can use it in 2 ways:

Parameterize your query like this:

CRM_Core_DAO::executeQuery('SELECT * FROM civicrm_contact WHERE id = %1',
  [1 => [$id, 'Integer']]
);

Escape your variables beforehand with CRM_Utils_Type::escape().


CiviEvent registration prevented with “missing fields” error for CiviDiscount free registrations for event

This sounds like the same problem as: https://issues.civicrm.org/jira/browse/CRM-17082

Looks like you need to apply 2 patches mentioned in the issue.


authentication failure [SMTP: STARTTLS failed (code: 220, response: 2.0.0 Start TLS)]

This question appears to be the same as Outbound mail fails after upgrading to 4.7.1 tl/dr i suspect your probably running on php5.6 or similar version and the ssl certificate for smtp.mailgun.org is not valid or is a CACert or similar and PHP5.6 is saying i can't validate certificate.


CiviReport Participant Sort by Event Start Date

Yeah, it's pretty silly that event start date isn't available as a header.  It's actually a really small change in the code, but it does require editing the code to add the field as an sorting option.

I made a change that will hopefully be included in the next 4.6 release, but you can add it by editing the appropriate file.  In your CiviCRM codebase (found at sites/all/modules/civicrm in Drupal, administrator/components/com_civicrm/civicrm in Joomla, or wp-content/plugins/civicrm/civicrm in WordPress), edit the file at CRM/Report/Form/Event/ParticipantListing.php to apply the changes you see here: https://github.com/civicrm/civicrm-core/pull/7221/files after line 299.


Jerry, Welcome to CiviCRM stackexchange, your civicrm database stores certain fields with data-type "DATETIME". To improve timezone support, you may want to change these from "DATETIME" to "TIMESTAMP".
For further discussion, please visit https://github.com/civicrm/org.civicrm.doctorwhen


Relationships and Dashboard are broken with https

The first thing I'd check is whether your CIVICRM_UF_BASEURL in civicrm.settings.php is set without the https and if so, change that. Then flush caches and test again.


ExtendedReport extension throws fatal error on WordPress Access Control save settings

Uninstalling and reinstalling the extension fixed an issue with a report template, causing the error.


Interesting. What version of Civi and the discount extension are you running? In an older version of the discount extension (2.1) you could specify each price set that you want the discount to be applicable to. But it seems the newest, 3.0, is much simpler and you only pick event.


The error you posted says, "Hi, I'm trying to create a new table in your database, but that table already exists."

Most commonly, this happens when you do an upgrade, then restore a backup, then attempt the upgrade again.  My guess is that you got a similar-looking (but different!) error previously, restored a backup, then got this on a second upgrade.

The reason this happens is that restoring a backup puts OLD tables back the way they were, but doesn't touch any NEW tables that don't exist in the backup.  So if you upgrade, you can NOT restore your database to the previous version simply by reloading the backup.  You must first DROP <database_name> and CREATE <databasename> so that you're restoring to a clean slate.

Try doing a DROP and CREATE before restoring your database and mark this question solved if that clears this error!  If you have a separate error, please post that as a new question.


Activity Separation field- set an option as default

The change was introduced at https://issues.civicrm.org/jira/browse/CRM-21419, and it gives the reasoning. As with a lot of things probably 50% of people would disagree.

If you want a quick hack (which would get overriden on upgrade though):
Change line 137 in CRM/Activity/Form/Activity.php from

protected $supportsActivitySeparation = TRUE;

to

protected $supportsActivitySeparation = FALSE;


Birthday block in Drupal without deceased and deleted contacts

Try this query (the only difference being the WHERE clause):

SELECT id, display_name, birth_date, CONCAT(((RIGHT(birth_date,5)
< RIGHT(CURRENT_DATE,5)) + YEAR(CURRENT_DATE)), RIGHT(birth_date,6)) AS bday,
concat(concat(month(birth_date), '/'), day(birth_date)) as displaydate,
(TO_DAYS(CONCAT(((RIGHT(birth_date,5) < RIGHT(CURRENT_DATE,5)) + YEAR(CURRENT_DATE)),
RIGHT(birth_date,6))) - TO_DAYS(CURRENT_DATE)) AS toBday FROM civicrm_contact WHERE
(TO_DAYS(CONCAT(((RIGHT(birth_date,5) < RIGHT(CURRENT_DATE,5)) + YEAR(CURRENT_DATE)),
RIGHT(birth_date,6))) - TO_DAYS(CURRENT_DATE) < 7) AND is_deceased = 0 AND is_deleted = 0 ORDER BY bday, RIGHT(birth_date,5);


Bug with WordPress CiviCRM 5.10.3 Remote Profiles HTML Form Snippet Form Action URL

I have the similar problem with the "thank you" page for donations. It started to displayed the same message instead of "thank you" page. We noticed, that URL is not correct: problem is caused by "&amp" string in URL. When it is replaced with just &, it works fine and "thank you" page is displayed correctly.


How to Add contacts to an Event or Membership from the Search task list

'Add Contacts to Event' was renamed to 'Register participants for event'

I don't recall an 'Add Contacts to Membership'


I wasn't able to reproduce the problem of the popup going off the screen for images that are too wide, but I did find that the popup's titlebar got hidden behind the menu if the image was too tall.

I've opened this pull-request to make things work a bit better in that situation.


Recommended upgrade for my civiCRM with Drupal 6

You don't mention any extensions on your site so if that is not an issue then I think you are as well going to 4.7.x

If you do have extensions then you might want to check things out before going past 4.6.x which is a LTS (long term support) version and has probably had more extensions verified for it than for 4.7.x

Of course if you do have extensions, it helps the community to know if you find any issues on 4.7.x and reporting them back to the maintainers or contributing patches or funds to help ensure they do work on that release.


How to extract views integration setting from the command line?

It is possible, you can code it (and because you are a scripter I suppose you are a coder). In CiviCRM, the views settings are generated in the with file https://github.com/civicrm/civicrm-core/blob/master/CRM/Admin/Form/Setting/UF.php

I used this as inspiration to create the following script

<?php
$config = CRM_Core_Config::singleton();
$dsnArray = DB::parseDSN($config->dsn);
$tableNames = CRM_Core_DAO::getTableNames();
$tablePrefixes = '$databases[\'default\'][\'default\'][\'prefix\']= array(';
$tablePrefixes .= "\n  'default' => '$drupal_prefix',"; // add default prefix: the drupal database prefix
$prefix = "";
if ($config->dsn != $config->userFrameworkDSN) {
  $prefix = "`{$dsnArray['database']}`.";
}
foreach ($tableNames as $tableName) {
  $tablePrefixes .= "\n  '" . str_pad($tableName . "'", 41) . " => '{$prefix}',";
}
$tablePrefixes .= "\n);";

echo $tablePrefixes;

Run this script with the CiviCRM cv utility (see https://github.com/civicrm/cv) as follows.

cv scr <scriptname.php>

I tested this on CiviCRM 4.7.27


I am not sure if CiviCRM Stripe pp extension supports ACH(https://github.com/drastik/com.drastikbydesign.stripe/issues/124). They might have beta version which is not released yet.


Upgrade from 4.1.5 to 4.2 (or any new version) fails

Enable debug and backtrace, it should make civicrm more verbose about why it fails.

It's a long time ago, but the internet has a good memory, if you can see the exact error message, searching for it should point you to someone else having had the same issue, and hopefully that did find a way to fix it ;)


CiviEvent with Sub-events and Conference Slots - how to....?

Creating Parent Event and Sub Event - using conference Slot

Create an Event and consider that as an parent Event - you need to enable  online registration for parent event
create another event consider this as a sub-event - In conference slot link the parent event and also create a slot and add to the slot - you don't need online registration for sub-event
repeat the above step to create one more sub-event

Now you can use event info page from parent event and try to book the event - It should create all the three event against the register contact

Regarding Paid Event

I am not sure about booking an un-paid event - I will give a quick test and will let you know

Regarding Off-line Registration

To my knowledge - Conference Slot works can only be used for online registration screen

I guess this helps!!!


Yes, its a bug in civicrm webform module as it doesn't record line item correctly. The price field value and price field id are missing. I have a patch(for 7.x-5.0) that works for contribution amount field but not for line item field in webform. If you are using contribution amount than you can give it a try.

diff --git a/includes/wf_crm_webform_postprocess.inc b/includes/wf_crm_webform_postprocess.inc
index ea9dc8f..5a78d2e 100644
--- a/includes/wf_crm_webform_postprocess.inc
+++ b/includes/wf_crm_webform_postprocess.inc
@@ -1552,14 +1552,17 @@ class wf_crm_webform_postprocess extends wf_crm_webform_base {
     // Contribution
     $fid = 'civicrm_1_contribution_1_contribution_total_amount';
     if (isset($this->enabled[$fid]) || $this->getData($fid) > 0) {
-      $this->line_items[] = array(
-        'qty' => 1,
-        'unit_price' => $this->getData($fid),
+      $params = [
         'financial_type_id' => $this->contribution_page['financial_type_id'],
+        'total_amount' => $this->getData($fid),
+      ];
+      CRM_Price_BAO_LineItem::getLineItemArray($params, NULL, 'contribution');
+      $lineItem = reset(reset($params['line_item']));
+      $this->line_items[] = array_merge($lineItem, [
         'label' => wf_crm_aval($this->node->webform['components'], $this->enabled[$fid] . ':name', t('Contribution')),
         'element' => 'civicrm_1_contribution_1',
         'entity_table' => 'civicrm_contribution',
-      );
+      ]);
     }
     // LineItems
     $fid = "civicrm_1_lineitem_1_contribution_line_total";


As you've noted, your best bet is to use Drupal to generate the XML (whatever shape that might take as Alan Dixon commented).

Views Data Export, Views Datasource or Services Views will work if you require the flexibility of Views filters, etc.  It really depends on what data need to be in the reports.  As Eli noted in the comments above, using Services by itself could work, but depending on how the data is coming in, a Views solution is probably your best.

Another module to consider (again, depending on the data you need) is CiviCRM Entity. It will open up a lot more CiviCRM data to Drupal Views.


You can use build kit to generate a repo including the civi "universe"  https://docs.civicrm.org/dev/en/latest/tools/universe/

civibuild create universe

or

mkdir ~/src/universe
fetch-universe ~/src/universe

could be worth checking extension usage to see if there are any widely used ones that don't make the cut to get included.

Happy grepping!


While I suppose you could empty the $params array, it would be a bit clumsy.  Meanwhile you'll need a way to notify the user in context, so something form-specific would be helpful.

Instead of using hook_civicrm_pre, you might consider using hook_civicrm_validateForm().  You'd be able to run the same checks, but in case the value is no good, you could send the user back to fix it.


How to resolve error: "Recurring contribution, but no database id"?

I am also experiencing this issue and have raised an issue in JIRA - https://issues.civicrm.org/jira/browse/CRM-18389.  You can fix this by upgrading to CiviCRM 4.7.9 or higher.


Why would an email have much lower open rates in the final part of an A/B test, but only in Gmail?

It's the metric. Open rate is not a reliable metric. An open is tracked through an image pulled from your crm server. If images aren't loaded the open doesn't get recorded. Further, Gmail uses something called image image proxying, i.e. they cache the images on their servers instead of pulling the images from your server.
Click rate is a reliable metric, though, so maybe construct decision making around that?
In any case it is still possible your emails are ending up in spam. There are services like glockapps that can help you figure out if this is the case.


As of today the recipients are fixed once you schedule the mailing.

You can experiment with https://github.com/3sd/civicrm-recalculate-recipients, if you want the recipients to be determined once the mailing is sent.

As per https://lists.civicrm.org/lists/arc/civicrm-dev/2017-12/msg00012.html there are reasons to prefer both variants.


Problem submitting payment on webform gift membership


Can't submit credit card payment after update to 5.2.1/5.2.2 (Joomla)

As per my knowledge CiviCRM  for version >= 4.6 never allowed to do offline credit card payment either for event registration or membership purchase or record of contribution for Paypal Standard payment processor or any other processor that is Website based gateway i.e payment information like credit or debit card not collected from CiviCRM forms. It does allow for payment processor like Paypal Express or Pro. Even i believe for Paypal standard CiviCRM doesn't show credit card section on online form. Adding paypal pro payment processor might be helpful.

Thanks

Pradeep


How to Insert html in custom field (type TextArea) via API

Have you tried any of the following before submitting the TextArea?

Highlight the code portion and Ctrl + K or Command K
Indent the code lines 4 spaces
Use backtics ' your html '
Use code tag your html


How can you add a gift premium to pledge

For our projects we always use Contributions (instead of pledges); in a nutshell we use: Contributions  - with Status Pending - and with a receive date in the future.

Added: when you receive a check for eg 3 of such pending Contributions you can hit Edit -> record the chq payment, update the receive date to the actual one (the one you had was just the 'promised by' one and toggle their contribution status to 'completed'

You can use any of the Contribution reports to find the Pending ones - you can use all Searches e.g. Final all that are Pending this week (may need follow up reminder) - and you can use Premiums.


There have been many discussions in past about this on old forum eg this one which refers to this extension - which looks like it needs testing for 4.6


How to force styles in CiviMail templates?

You can force inline CSS with this extension.


I cannot get the installer civicrm screen

Welcome to the CiviCRM community!

After enabling CiviCRM on the WordPress plugins page, you must run the CiviCRM installer.  Please see the WordPress installation instructions for details.

If you still have trouble, please post a new question, indicating a) the version of WordPress and CiviCRM; b) what steps you've taken, and which aren't working.


There is an extension ACL for Activity Types that provides ACL for activities based on activity type. This extension allows one to define permission for CRUD operations for each CMS role.


I'm not sure if this functionality exists from the UI or API. I think it's not.

A quick recall says that this info is being stored in civicrm_subscription_history table where contact_id, group_id, status(Added or Removed) and date(the one when the action was triggered) can be viewed.


Why can't I export a Contact Detail report to CSV?

The report you are trying to export (Contact Detail) does not currently support that feature. That particular report presents a variety of information that does not lend itself easily to be represented in a single spreadsheet.

You could use a similar report, such as Contact Summary, and export that.

Or you could use your programming expertise and creativity to find a way to make that report generate an exportable spreadsheet.

CiviCRM is an open-source project and new features come from community contributions of code or funding. The issue you referenced was closed due to lack of participation. Community members such as yourself could change this by stepping up to make it happen.


CiviCRM Mailings external links forbidden

You're correct, this is not CiviCRM-related.

Your Apache log is showing that mod_security is the culprit here.  mod_security is a "web application firewall" - it sits between the user and Drupal/CiviCRM.  It's used to block access to the application when it thinks the interaction is malicious.

From the log, I can see that it's blocking part of the cookie associated with ajs_user_id.  A quick Google search says that ajs_user_id is probably tied to segment.com's analytics.js.  Does that ring a bell?

The answer is to go to your webhost/sysadmin and show them this error; they should be able to change the mod_security logs.  If they refuse, I recommend changing webhosts.  If that's not an option, disable analytics.js.


Foreign key violation on creating new Financial Type

Looks like the Default organization contact is missing in your database. Try to resave the contact by navigating to CiviCRM >> Administrator >> Communications >> Organization Address and Contact Info


Fatal Error when renewing membership after Upgrading to 4.6.16

@Tapash - I just tried to reproduce this on one of our live 4.6.16 projects and I can not.

From a Contact's Membership I'm successfully able to both:

more -> Renew [no errors; renewed properly] &
more -> Renew-Credit Card [no errors; made payment; got receipt; renewed properly]

I've also checked the JIRA issues and I don't see anyone else describing what you're observing. Considering your other Q as well - I'm wondering if perhaps something went wrong during your recent upgrade?

General recipe for this is to restore both code base (files) & databases back to 4.6.14 and then to run the upgrade script [to 4.6.16] again. If you can: run it via drush - it may give you some warnings/errors that give you some insight as to what's going on.

  sudo -u apache drush civicrm-upgrade-db


Here's the detailed steps I took to move the angular extension from an extension and into core.

if your angular files are not already name spaced, they should be changed.  In the angularextension there should be a folder in ang/ named something similar to the module. Namespace this folder to crmModuleName. Outside of the crmModule folder, but inside the ang folder should be your css and the file that creates the module and has the router in it. Namespace these files to crmModuleName.css and crmModulename.js.
Move the crmModulename folder and files to the ang/ folder in CiviCRM core. It should mimic the directory structure of your extension.
There should be a file in the ang/ folder in your extension that is modulename.ang.php - it should have an array that points to where the files in your extension are located:

<?php
return array(
  'js' => array(
    0 => 'ang/crmModuleName.js',
    1 => 'ang/crmModuleName/*.js',
    2 => 'ang/crmModuleName/*/*.js',
  ),
  'css' => array(
    0 => 'ang/crmModuleName.css',
  ),
  'partials' => array(
    0 => 'ang/crmModuleName',
  ),
  'settings' => array(),
);

Find the file Civi/Angular/Manage.php. Within the public function getModules put the information from modulename.ang.php. It should look like this:

$angularModules['modulename'] = array(
  'ext' => 'civicrm',
  'js' => array('ang/crmModuleName.js', 'ang/crmModuleName/*.js'),
  'css' => array('ang/crmModuleName.css'),
  'partials' => array('ang/crmModuleName'),
  'settings' => array(),
);


Error When Expanding Relationship Section on Advanced Search

So this all boiled down to this issue, which has to do specifically with custom fields that are integer selects, and it was impacting both the custom fields and the relationships sections of the advanced search since I was using the same custom field on a custom relationship.

The short-term fix is I went into the database and made the custom field in question not searchable and set is_search_range to 0 as well, which resolved the issue with the relationships section on advanced search throwing an error.

That does mean that for the time being I can't search by that custom field, which is unfortunate since it's kind of a key piece of what I might want to sort/filter by, but I'll keep an eye on the bug and if push comes to shove I can always change that custom field into a text field and rework things since in this case although the data is integers it doesn't have to be since I'm not running math on it or anything, it's essentially just a numeric label.

Hope that helps someone else who runs into this with some thought process or at least raises awareness about the bug.


Do I need to know Linux to administer CiviCRM?

The question is tricky because it's a bit imprecise -- different people may interpret "know Linux" and "administer CiviCRM" a bit differently.

It might be clearer to rephrase the issue this way:

To administer the data model, profiles, contacts, events, mailings, etc, you need an analytic mindset and a general understanding of data-management, but you do not need sysadmin skills.
To administer the installation, backup, or upgrade, you do need sysadmin skills (for HTTP/MySQL/PHP on your chosen platform). For a general GNU/Linux hosting platform with Ubuntu/Redhat/etc, general GNU/Linux skills should do. For Windows or cloud platforms, you probably need more advanced/niche skills.

Additionally, there are the wildcards -- adding new features or perfecting the appearance within your site or debugging hard problems. These are wildcards because the required skills vary widely. Sometimes basic point-and-click will do; sometimes you need robust skills in a dozen systems.

As others have mentioned, a good model is to partner with someone more experienced. You can handle a lot of administration yourself -- and when/if a task comes up which needs more skills, reach out to them.


Search for Contacts w/ specific criteria (if you like to narrow things down) -> then add the resulting Contacts to a Group; make sure in Manage Groups that the Groups is a mailing group; Then go to CiviMail and email this Group your Event details + link to registration page.

If you have fewer than 50 Contacts you can also send Email from the Result of the Contact search screen; over 50 you'll need to use CiviMail;

If you want to get really fancy -> embed a checksum token in your Email message to your Contacts -> that way when they get to the Event registration page existing information (already in your CiviCRM) - will be filled out for them;

The details on how to use this would depend on your CMS -> but here's an example for Drupal (where IDNUMBER is the ID of your Event)

http://www.myorganization.org/civicrm/event/register?reset=1&id=IDNUMBER&{contact.checksum}&cid={contact.contact_id}

When using checksum tokens -> they only have limited lifetime (for security reasons) -> you may need to visit Administer -> System Settings -> Misc -> and change the Checkum Lifespan (7 days is default);


Drupal Rules - Condition "Civicrm Contact has email" appears to not be working

https://github.com/eileenmcnaughton/civicrm_entity/blob/7.x-2.x/civicrm_entity.module#L3237

remove the ampersand from the $contact parameter

function civicrm_entity_contact_has_location_element_email($contact, $location_type_id) {

This is a bug, can you make an issue in the CiviCRM Entity project issue queue? I need to trace back how this code got that way, and see if there's any other reasons why it is as it is now before I put it into the release

But I can't think of any reason why it should


Error when upgrading from 4.7.16 to 4.7.20

It appears that the foreign key mentioned in the error message doesn't exist for some reason. I would probably go into MySQL and check.  If it's not there, just create one with the same name on the civicrm_case table. Then try the upgrade again.

A MySQL statement to create the foreign key (from CiviCRM 4.5) is: ADD CONSTRAINT FK_civicrm_case_case_type_id FOREIGN KEY (case_type_id) REFERENCES civicrm_case_type (id) ON DELETE SET NULL;


The upgrade for 4.7.18 tries to insert new state in civicrm_state_province table. This was done via https://issues.civicrm.org/jira/browse/CRM-19993.

But seems you already have Chandigarh in the table due to which mysql finds a duplicate row already present in the database and eventually displays an error. So the question is how this record is already present in your database?

Have you tried this upgrade for 4.7.18 before and retrying this again? If yes, try getting a backup of the previous version and then start the upgrade process.
Have you added the new state Chandigarh in your DB manually in your previous version?
In this case, you can simply delete the Chandigarh entry manually from civicrm_state_province table and restart the upgrade. It will create the entry for Chandigarh so you'll not lose any state record from your DB.


This might be the same issue as reported here: http://forum.civicrm.org/index.php/topic,35596.0.html

Could you check if you have the 'Extended reports' extension enabled? That isn't yet compatible with the new interface, so disabling it should fix the problem.


customize search field in Contact Reference Field

First, it can't be done without coding and it may not be an easy task.

I can think of 2 possibilities :

Change search api

When you do a search, the api that should be called is Contact.getlist, so the first step is to see if the api is able to do what you want. It seems to be possible to change the search from "name or email" to "external_identifier" but i can't find a way to do "name or email or external_identifier".

$result = civicrm_api3('Contact', 'getlist', array(
  'sequential' => 1,
  'input' => 4398,   // the text searched
  'search_field' => "external_identifier",
));

The problem i see is, if you change the default api behavior, it will be changed everywhere. I don't think you have the context here.

If you find your way, you will then have to implement the hook_civicrm_apiWrappers to change the api call as needed.

Change the ui

Replace the default CiviCRM search by a custom one that will call a custom api


How can I create public display of all Activities for Current Day + X weeks in Future (WordPress)?

You're looking at writing a custom WordPress plugin along the lines of the CiviEvent Widget plugin. Basically, you'll query the CiviCRM API to get activities (filtered appropriately to your needs) and then render them as a shortcode and/or widget.

So, yes, you can write custom code to do this, even as there is no built-in display for CiviCRM activities.


How do notifications for recurring payments work?

There is an answer here that says among other things

You'll need to install these:

https://github.com/CiviCooP/org.civicoop.emailapi / https://civicrm.org/extensions/e-mail-api


the Results and Table aspects you refer to are purely Drupal components. We have built many hundreds of webform_civicrm forms and have never seen a problem with this so I doubt the problem is specifically an issue due to using civicrm.

You could try right-clicking and using your browsers 'inspector' to check the console and see if it shows any errors.

Otherwise try searching/asking in either the Drupal stackexchange or in the Drupal project Issues pages - and hopefully they won't say 'this is a civi issue' (unless of course it is and I am wrong)


Are you logged in using super admin user(i.e user id = 1)?

Here are some advice to solve the issue:

Recheck visiting component page if the components are enabled.
Please check Drupal permission.
Clear Drupal and CiviCRM cache.
Check Navigation links for Grants, Case etc by navigating to Administer >> Customize Data and Screens >> Navigation menu
Do menu rebuild /civicrm/menu/rebuild?reset=1

HTH

Pradeep


Error on running cron job for mailing process on CivicRM 4.7.8

Check that:

your command line specifies the -s parameter, as it is used by CiviMail (cf. https://wiki.civicrm.org/confluence/display/CRMDOC/Managing+Scheduled+Jobs#ManagingScheduledJobs-PHPclimethod)
the user/password pair on the command line is for a valid Joomla user (log into the website with this exact username and password)
that this user has at least the Access CiviCRM and Administer CiviCRM permissions in Joomla


My Subscribe to mailing list only works with logged in users

There are some permissions with profiles and you have to set those permissions for the anonnymous user. Those permissions are calles profile listsing.

If you are using Drupal you could try to create a webform with the webform and civicrm integration.


How do I create set up batch update members via profile?

I would suggest that you start by looking at the documentation on Profiles.  If you still have questions please come back with some more details about what the problem is.


Create a Drupal View of current event participant numbers

Yes you can do this in a Drupal View but it will require some config (both to tell Drupal about your CiviCRM tables as well as the Views config itself);

The goto solution for this within CiviCRM itself is:

Install: Extended Report Extension:
Got to your Adminster -> System -> Settings -> Manage Extensions -> Add New -> ExtendedReport (nz.co.fuzion.extendedreport)

After you've installed it -> go Administer -> CiviReport -> Create New Report from Template and select e.g. Extended Report - Contributions with Price Set data


Event Report Template - Adding Sorting By/Group

If you mean 'how do I show the Organisation that is the Employer of the person attending the event' then you need to see if the 'Current Employer' field is available for that event.
"Organisation" is not a field per se. It is a Contact Type.


How do I edit email template for Events confirmations

You can customize the style and wording of events email messages in workflow messages here civicrm/admin/messageTemplates?reset=1


I have installed eventcalendar extension in civicrm

The fullcalendar is the plugin called "WP Calendar", if you have WordPress you install and activate it in the WordPress plugin area.

For the other issue, you may want to either disable/reinstall the civicrm extension, (works for some people), or take a look at answer to How to use event calendar extension with civievents

Also there is another step that you didn't list, to copy over the folder mentioned in the "Note" section of the README.


That's stored in civicrm_settings with a group_name of Mailing Preferences and a name of replyTo.

As a tangential note, this feature also existed in Civi 4.5.


Yes at the moment the list is manually maintained (see https://github.com/civicrm/civicrm-core/blob/5.15.2/xml/templates/civicrm_country.tpl#L172). You can file an update request at https://lab.civicrm.org/dev/core/issues


Best practices for translating message templates

It has been a while since I last did this, so I had forgotten about "Administration->CiviMail->Header, Footers and automatic messages" where you should do this. At least when it comes to subscriptions, confirmations etc.
Don't. Touch. The. Message. Templates.


Self-service update of credit card details - how to notify staff to re-process recurring contribution?

This works in core! There is an activity created of type Update Recurring Contribution Billing Details when a contact updates their details through the form. And then you can add a CiviRule to send an email when this activity is created. That will also capture back office updates and ideally it wouldn't but this is bearable. A back office update will have a target contact while a self service one will not, but I don't think there is any way to add lack of target contact as a condition in Civirules.
What I did is to only trigger on source contact activities and exclude updates with the source contact ID of one of our staff who might update a credit card from the CiviRule. Not pretty, but good enough.

Not sure if this always worked and somehow my testing didn't work before or something was fixed in our latest update to 5.35.1.


It's in Administer menu » System Settings » Misc, and it's labeled "Accept profile submissions from external sites".

That's a little obtuse, but most system warnings have a link on the System Status page, at Administer menu » Administration Console » System Status.  See screenshot:


How do we tie groups or memberships to a product and be able to mail with it?

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'


CiviEvent registration with pay later prevented with "missing fields" error

You may want to have a look at this issue.


Forms generation with CivicRM Profiles under Wordpress

I'm not sure what you're wanting to do is possible, see a solution here, which is to create one new profile with all the fields: https://forum.civicrm.org/index.php?topic=32718.0

That said - CiviCRM 4.6 with Wordpress has the ability to render multiple profiles, but I'm still not sure if you can have multiple profile forms: https://civicrm.org/blogs/haystack/working-civicrm-46-wordpress


Prettifying forms - what is the best we can use as a theming for pure civi forms?

Alternative could be the Haystack theme (although I have not tried what it does to event or contribution pages): https://github.com/mattwire/civicrm-haystacktheme


Smart Group criteria disappearing or changing

There was a set of nasty bugs that fit the description of what you're talking about throughout 2015:

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

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

CRM-18435 in particular is getting a fix in the August 3rd release of CiviCRM.  You can patch it now if you know how (patch is linked from the ticket above) but otherwise upgrade next week.

To give a big-picture overview - smart groups rely on the underlying form (in this case, Search Builder) not changing.  For a while, there wasn't really awareness that changing the form would break smart groups.  In fact, I have a patch that hasn't yet made it into CiviCRM here because someone pointed out that a benign-seeming change could break a smart group.

Now that there's awareness (and automated tests!) around that, those issues are going away.


Please make sure you have selected the correct datatype while creating the custom field value  - it should look like below


Why doesn't creating a case from API work?

Thanks for sharing this, I agree that it looks like a bug. Instructions on filing a bug report here: https://civicrm.org/bug-reporting


We are having this same issue. The civicrm_contact_push_notification_messages table has grown to 4GB with 14million records in just 14 days. There is a 'Civimobile clean old push notification messages' scheduled job but it only cleans notifications older than 90 days.
This appears to be causing timeouts on our server due to low resources. Is there any way we can turn this excessive logging off?


How to change the default license selection in `civix generate:module`?

I believe you can use any of the licenses in https://github.com/totten/license-data/blob/master/index.csv, which is used by civix.

In your case, just add --license=GPL-3.0 to the command.

It looks like you may be able to set a value in ~/.civix/civix.ini to provide a local default: https://github.com/totten/civix/blob/v16.03.2/src/CRM/CivixBundle/Command/InitCommand.php#L118


There was a bug in CiviCRM 4.6.4 that triggered the same error 'A fatal error was triggered: is not of the type Int' when trying to rebuild the smart group cache so this could be related, especially if U used smart groups for your maling.
I would suggest upgrading to 4.6.6 on a copy installation to see if that resolves the issue. Since this is not a real answer to your question I wanted to post this as a comment but I don't have sufficient reputation points to do that. I myself upgraded to 4.6.6 after experiencing too many problems with the 4.6.4 upgrade.


Search view profile to show only the primary phone number

Ideally, there should be an option with the label -any- in the above select input. But as it is not present, I don't think there is any UI setting to accept all phone type values for the profile field.

Maybe, you can try API to trigger this (Support -> Developer -> API Explorer) OR http://domainname/civicrm/api#explorer.

Select Entity as UFField and action as create and form the API something like -

$result = civicrm_api3('UFField', 'create', array(
  'id' => <uf_field_id>,
  'field_name' => "phone",
  'phone_type_id' => 0,
));

The first param is the uf_field_id which is the id of the profile field created in your screenshot.

If you don't find the id, you can check by placing your cursor on the Edit link on the field row displayed for your profile. The URL will be shown on the bottom left of your browser. For eg: in the screenshot below 75 is the value of the field id.


How can I set "Assigned To" for an Activity to default to the logged-in user name?

Create a simple extension implementing hook_civicrm_buildForm like so:

function myextension_civicrm_buildForm($formName, &$form) {
  if ($formName == 'CRM_Activity_Form_Activity' && $form->getAction() == CRM_Core_Action::ADD) {
    $form->setDefaults(array('assignee_contact_id' => $form->_currentUserId));
  }
}


Drupal Views and CiviCRM on same database not working

Perhaps you missed this step:
https://docs.civicrm.org/sysadmin/en/latest/integration/drupal/views/

  Before making any changes, it is strongly advised that you make backups of your mysql databases and settings.php file.
  If you have different database users for your CiviCRM and Drupal databases, then you need to grant SELECT access for the Drupal user to all the CiviCRM tables.
  Make sure you are logged into your Drupal site as the administrator.
  Visit http://example.org/civicrm/admin/setting/uf?reset=1
  You should see a page with output that begins with: $databases['default']['default']['prefix']= array(
  Copy this setting output, including the trailing );
  Open /sites/default/settings.php for editing from the root directory of the site, typically public_html on most servers.

    Note: This assumes you have a single site installation. The location of the settings file might be different depending on whether or not you have multiple sites

  Find the database connector array. This is where Drupal stores the information regarding the MySQL database and the necessary credentials to connect to it. The array beings with $databases = array ( then goes on to include the location and MySQL credentials, as well as additional options.
  Paste your previously-copied settings output here. Be sure to paste it after the trailing );
  You may need to indicate the default prefix. If you see an error [like] PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'kckruppc_every.semaphore' doesn't exist: SELECT ... You need to include an additional line, 'default' => '<drupaltableprefix>', in your settings.php just after $database ['default']['default']['prefix']= array(. …
  Save the file. You might want to clear your site cache at this point.
  You should now be able to create views based on CiviCRM data.


Unfortunately I don't think this is possible to do without a small amount of development work.

If you did want to add this as a feature there are several approaches:

1) You could modify the contribution template file yourself (or pay a developer) to add some javascript in order to do this. You would probably also need to configure the page to have a price set field that is the "credit card fee" or something similar. There is more information about how to append a template page here:

https://wiki.civicrm.org/confluence/display/CRMDOC/Page+Templates

2) You could contact the core team here and request a new feature using the paid issue queue: https://civicrm.org/paid-issue-queue. CiviCRM has a new monthly release cycle so your feature could be built relatively quickly.

Best

Jamie


How to Set Up a Particularly Wonky Membership Type?

A slightly off beat thought on this:

just set up a Contribution Page without any membership types, but with a special Financial Type
use the Summary Fields extension to sum up the amount someone has paid of this type
use CiviRules to then give the person the 'lifetime' membership.


Automatically transferring info from Casenote to indivudial client form

if the process you are using is via New Case, then you get the option to Add New Individual if the contact does not exist.

In that case you can modify the New Individual profile and add additional core or custom fields to that so you can add the info you require to your contact.


You might find this Fuzion extension does what you need. Front End Page options adds the ability to choose an alternate thank you page instead of standard CiviCRM thank you page


Is there any way to search for contacts with special characters using other characters in the CiviCRM search?

You can use MySQL wildcards in most search fields.  Using a percentage sign will find either character - e.g. G%nther will find Gunther, Günther, and Guenther.  Note that this slows down searches, especially if it's at the very front of the search.


My users can't unsubscribe themselves from (or subscribe to) smart groups from Wordpress

NOTE: Having written the below as an 'answer' I am less certain it is since it seems to raise more questions but will leave as such for now.

A contacts who is 'in' a Smart Group, is not 'added' to the Smart Group in the same way as they are to a General Group.

Hence I would not expect such a contact to see the checkbox for the Group 'ticked' when they go to the Profile.

Ie when I go to http://d46.demo.civicrm.org/civicrm/profile/edit?gid=16&reset=1 I do not see the group 'name like lan' checked, so it cannot be unchecked.

Does that make sense in your situation.

if lan does tick that group, then he gets sent an email for the double opt-in.

But when i Search within that Group for members Pending, it shows me all 11 contacts which I did not expect

11 Contacts
Group(s) In name like lan ...AND...
Group Status 'Pending'

Wondering if the latter is a bug but not digging on other sites to prove outcome with older versions.


You can add file types in Safe File Extension Options in the admin console. (I don't know if it's advised, but it's certainly possible :)

Go to Administer > System Settings > Safe File Extensions, then click 'Add Safe File Extension'. Enter the file extension (without the dot) in the Label field, make sure it's enabled, then save.

Edit: However, this doesn't actually help with .tif files. TIFFs aren't meant for web use, so (presumably) the image processing in CiviCRM or the CMS isn't designed to deal with TIFF files - it looks like CiviCRM has an additional check to stop the upload because of this. There are probably modules for Drupal that will add this capacity (Imagemagick comes to mind), but I don't know if they'll be picked up by CiviCRM.

If you don't need the images to be TIFF files, I'd recommend using a progamme like Irfanview ( http://www.irfanview.com/ ) to convert them to jpgs.

If you do need to have the files as TIFFs, then add a custom file field for the contact record - this will allow you to upload the files, but won't display a thumbnail. (You can always upload a jpg version as well to get the thumbnail).


Joomla 3.8 & CiviCRM 4.7.x - front-end error 500 when logged in

It turns out this was down to the distribution of BSD on the broken servers was standard USA but PHP needed the PECL international library (https://pecl.php.net/package/intl).

Apparently without it, the collator in Array.php is returning a null rather than an exception and causing the error. But only in Joomla 3.8 it seems.

Dave at Digijuice suggested that ammending Array.php at line 534 as follows could fix the problem - which I include in case of use to anyone, but not sure if the problem is common enough to submit this as a change/issue?

public static function asort($array = array()) {
  $lcMessages = CRM_Utils_System::getUFLocale();

  if ($lcMessages && $lcMessages != 'en_US' && class_exists('Collator')) {
    $collator = new Collator($lcMessages . '.utf8');
      If($collator!==NULL) {
        $collator->asort($array); }
         else {
           asort($array);
         }
       }
    else {
      // This calls PHP's built-in asort().
      asort($array);
    }
return $array;
}


Error (One of parameters is not of the type Integer) while clicking the 'mailing.viewUrl' in a sent mailing

Looks to be this issue: https://lab.civicrm.org/dev/core/issues/1037

You could try applying the PR linked there - or wait since it has been merged so will be in a release soon.


Warning: Disabled/Deleted fields on Smart Groups

To clear them click the left of the 2 small icons, then click the smart group criteria to go into search, hit the search button and create the smart group & then delete the smart group. Then it should disappear the warning message


CiviCRM is telling you that there is no "supervised" rule configured for the Individual contact type - it doesn't know how to check that those "friends" are new unique contacts and not existing donors/members/contributors etc.

There's some information on deduping and merging contacts in the CiviCRM User Guide

In particular please check that you have a supervised rule configured for individuals as seen in the screenshot on the first linked page.


One option is to remove the content from the text version. CiviCRM will then construct a simplified version of the html for users who specify text only.


You need to either clear caches or menu rebuild: https://docs.civicrm.org/sysadmin/en/latest/troubleshooting/#rebuild-civicrm-menus


In v4.4 and v4.5 there is a known problem with membership reminders. Only one reminder email of each type will ever be sent to each member, not one each year, just one for that member forever. (Unless you have repeat turned on, but I think that is unlikely for membership renewal reminders as that creates another set of problems.)

It means you need to create copies of your existing reminders every 12 months (assuming you have one year memberships).

Things are different in v4.6, so if you are on v4.6 this answer will be irrelevant for you.


How are spam bots making submissions to civiCRM?

If you have a CiviCRM profile assigned to "Drupal User Registration" (as "Name and Address" is by default, I believe), then spam bots that apply for an account on Drupal will also be inserting fields from that profile into their associated CiviCRM contacts.

If you aren't using the account functionality you can turn it off in Drupal (admin/config/people/accounts) by allowing Admin only account creation. Otherwise you can look into Drupal-specific spam blocking modules such as Honeypot.

There are also some CiviCRM-specific fraud prevention suggestions that may be of interest to you.


Change event participant status by clicking on a link (via civimail)

Well, what you can do is to add in your webform a bit of javascript to automatically click on the submit button, eg in the body of the webform (or anyway you want to add some javascript):

<script>
jQuery(function($){
  $(".form-submit").click();
});
</script>


This is a known bug in CiviCRM 4.7.23 - CRM-21076.

If you feel comfortable editing the PHP files, you just need to add one line to apply the fix.

Otherwise, hold tight for CiviCRM 4.7.24, which is scheduled for September 6th, 2017.


I guess this will happens only for the admin user

Please try creating an user without admin right and try the same - should pre-populate the details on the screen.

I guess this helps !!!!


How can I add a "Recurring" filter to core "Repeat contribution" report?

Over-riding core file would be last thing we should do unless there are no other option, since you need to port the file in each incremental upgrade.
Instead I would do one of the below

To add filtes, fields etc to report i would implement hook_civicrm_alterReportVar via extension or module or plugin

If the requirement is too complex than i would create new report file extending Repeat Contribution report(see example)


CiviDiscount can calculate an automatic discount based on criteria such as current membership for individuals.


I'm a little confused here - you say that the Modules overlay confirms it's installed, but any attempt to enable it produces the error. You shouldn't have to enable it anywhere - you run the install page and then it is installed and automatically enabled in Drupal.

So on the modules page is it just listed there, or is it checked to show that it is actually turned on?

I want to make sure where we stand on that before looking at other causes.


How would we implement a monthly prize draw database?

It sounds like the issue is partly about how you record fact that Mary made one payment which covered entry for April + May + June and therefore you need to ensure she is in the result for your search of folks who bought a ticket for each of those months.

I would suggest doing this as a Membership for a Monthly period, and therefore some who pays for 3 months gets 3 'cycles' of Membership and therefore will be returned as being 'in the draw' for each of those months.

Then do the rest per Jaap's suggestion


It should be 'case_id' => 223 instead of 'id' => 223 for the CaseContact one. It seems to work with either on the public demo, but that might be coincidence - in the civicrm_case_contact table the 'id' field is an autoincrement technically unrelated to case_id, but may or may not match the case_id depending on creation order, multiple clients, and other happenings.

I would use 'case_id', like so

$result = civicrm_api3('CaseContact', 'get', array(
  'sequential' => 1,
  'return' => array("contact_id"),
  'case_id' => 223,
));