Creating a custom Form: Action (view vs update) I'm building my first extension, and have created the sample quickform using civix generate:form. So far, so good, the form shows and works within a modal popup.

I've noticed with Core forms (like Contribution edit/view), I can send in an "action" query param, and based on the value of that, the form will either just display a view of the data for that ID, or will show the actual form to edit the data and save it.

I was wondering how I could do that in my custom extension. Do I need to create two sets of php/tpl files, one for editing and one for viewing? Or is there some method or something that will convert the form template to just a view of the fields for me?

If there is a simple example of this type of form (maybe an example extension I could look at), I would appreciate a pointer to it.

Paul B,

Its not necessary to have 2 separate tpl for View and edit, the logic can be added in one tpl or php file. But for convenience Civi tries to keep it separate.

A good example for view and add form will be New/Update/ View Membership forms.

The action for CRUD is registered here
https://github.com/civicrm/civicrm-core/blob/master/CRM/Member/xml/Menu/Member.xml#L13

https://github.com/civicrm/civicrm-core/blob/master/CRM/Member/xml/Menu/Member.xml#L48

When above one of the 2 url is hit CiviCRM will execute run() function from here. Where you decided which file to invoke for example to create view form process view(), Add/Edit process edit(), listing process browse()
Each php file should have tpl associated with it.

You can copy paste same file and structure and just change the class name. It should work for you.

HTH

Pradeep


Removing elements for non-admin users There are several instances where I want to remove some buttons, inputs, tabs, etc on various screens for non-admin users. For instance, on the Event Search screen in this template

CRM/Event/Form/Search.extra.tpl I have

<script>
{literal}
//remove smart group creation
CRM.$(function remove_smart_group_creation($) {
 $('#task option[value=12]').remove();
});

//remove group add contacts
CRM.$(function remove_group_add_contacts($) {
 $('#task option[value=2]').remove();
});

//remove delete participants
CRM.$(function remove_delete_participants($) {
 $('#task option[value=4]').remove();
});
</script>
{/literal}

How could I exempt the administrator role?

Are they in the administrators group? Since then you might be able to do something like (untested):

CRM.api3('GroupContact', 'get', {
  "contact_id": "user_contact_id", // use this exact string to mean current user
  "group_id": "Administrators"
}).then(function(result) {
  if (result.count == 0) {
    // Not in the admin group
    // ** do your removal stuff here **
  }
});

There is also CRM.checkPerm() to check a CMS permission. See e.g. https://github.com/civicrm/civicrm-core/blob/5.18.4/templates/CRM/Tag/Page/Tag.tpl#L123, e.g. CRM.checkPerm('administer reserved tags')

if (!CRM.checkPerm("administer CiviCRM")) {
  // do your removal stuff
}


Personal Campaign Pages only visible on front end when logged into back end Using WP 4.6.1 and Civi 4.7.13. I am trying to create a set of PCP's for staff members for our year end fundraising campaign. I can successfully create a PCP from the link provided by the Contribution Page using a browser in which I am not logged into WP/Civi. In another browser, I am logged into WP/Civi and approve the PCP and am able to see that PCP by clicking the link in the Civi PCP list. However, if I log out or try to use that link in another browser in which I am not logged into WP/Civi I get an error stating that the PCP is not available but I can donate using the donation page form. What am I missing?

Thanks,
e.

Have you checked the permissions and roles? If not you may find useful the following documentation Default Permissions and Roles


Price Set Total Amount not displaying and JS errors I have a Jooma 3.8.13 civicrm 5.5.1 install. I am using a price set on a membership contribution page, but the total amount is not displaying.
All works fine on test drive but on the live page no total amount is displayed at all, either initially or when any items from the price set are chosen.
Changing templates makes no difference, same issue on joomla default templates.
The price total calculation is working as when contribution is confirmed the next pages shows the correct amounts.
I know that the total amount is calculated using javascript. And I am seeing JS errors on browser console.
I did the usual - Directory path in CiviCRM/Resource URL/Cleanup CiviCRM Cache

CiviCRM Resource URL - long standing bug in Joomla version, still in civi 5.9.0.
Replace [civicrm.root] with absolute URL.


Member reports javascript broken after update Somewhere between 5.15 and 5.36, javascript starts breaking on all member reports.
In the html body, javascript is searching for
$originalElement = $dateElement.siblings('#membership_join_date_from').hide(),
        date_format = $originalElement.attr('format'),

and later does
date_format.indexOf('m') > -1

In my source, membership_join_date_from is not a sibling of $dateElement. it is nested inside a sibling span.crm-form-date-wrapper (and it doesnt have an attribute called format).
So date_format is undefined and the error stops javascript execution; the form layout with tabs and such breaks, even showing the SQL output when generating results.
Since nobody seems to have this, I am wondering if it is something with my reports ?

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


How can I find membership totals on a month by month basis eg. total members end of Jan, Feb ect so i can then analyse the increase month by month? I have found how to get Civi to show me how many new members of each type joined per month. However I need the total of all members at the end of January Feb etc so I can see if there is an increase in members and of which type.

I would firstly suggest checking out the Membership Churn extension


How to show Days in Case in Drupal Views? Trying to create a Drupal View that shows total number of days in a case.

There are two methods I'm considering:

First, I imagine if I could turn the case start date and end date into "Days Ago" within the view I could perform a math calculation of [end_date]-[start_date] to get the number.

The other method I thought may work would be to create an aggregate table through views that displayed a daily case load.  For example, on 1.1.15 list these 5 people that have ongoing cases.  On 1.2.15 list these 5 people that have an open case.  From there, I could group by contact name and count.

Anyone have any ideas or done something similar?

Got it!

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

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


Search within a case type I would like to be able to search for a specific Case Type as well as a Case End Date within this case type.  To give an example, say I have a record that contains both Case A (which ended January 2018) and Case B (which ended December 2018).  Right now, the advanced search is returning this record if I search for "Case Type A" AND "Case End Date December 2018."  However, I would like the search to NOT return this record, as the end date (December 2018) is not affiliated with Case Type A.  Is there a way for me to conduct such a search?  I'm using CiviCRM 5.13.4.

Try the case summary report, which might not be visible by default. Go to Administer - CiviReport - Create New Report From Template. Then pick the Case Summary report. Then on the filters tab set your filters.


Events - upload image Has anyone come across a plugin/extension/hook that adds an upload image ability to events "Info and Settings" tab (or a separate tab)?

Is there anything stopping you using Custom Fields to do this? Thats normally how people add extra information they wish to hold about the event. You'd then need to do some work on the display side to use the image.


Using 2 payment processors with Webform CIVI intergration I want the user to choose between two payment processors in a webform with CIVI integration. I can let the user select between PayPal and direct debit. However I want to set the value based on country. So if the user is not in the United Kingdom, payment processor is set to PayPal. However when it comes to setting conditionals, I don't know what the values of the payment processor is.

I've tried values 0, 1, 2 - i've tried the value 12 from the CIVICRM admin payment processor page, but nothing works. I've also tried just typing in PayPal Standard.

Any ideas?

CIVICRM 4.6.33 - Drupal 7

Thanks,
Andy

In general you can find out the values of any field by looking at the markup. If you visit your webform and right-click the payment processor field, select "inspect element" (if you're using a decent webbrowser) it will show you the code.

<option value="0">Pay Later</option>
<option value="1" selected="selected">Test Processor</option>

So in this example the test processor has a value of 1, pay later has a value of 0.


CiviCRM report for Case activities listing Case data I would like to generate an Activities report (eg upcoming scheduled activities) which includes case data (eg case ID, case Subject, case Role contacts, case custom fields) of the case to which each listed activity relates. Is there an 'approved' way of doing this? Thanks.

Are you using drupal? You might get what you want with a drupal view.

The "extended report" extension (https://github.com/eileenmcnaughton/nz.co.fuzion.extendedreport) has a case pivot report where you can filter on activity date for example. It might get you close.

A sideways thought: You mention upcoming scheduled so I assume there is a further end use for this report, which might be achievable other ways. For example scheduled reminders or civirules might be able to give advance notice when certain conditions are met.


How to display only unique CiviCRM Contact Address in Drupal view? I have a Drupal view set up to display the CiviCRM address(es) related to a given contact:

Full view settings

Query options

As a note, I have enabled the Distinct and Pure Distinct settings on the Drupal query settings:

CiviCRM contact page

On the CiviCRM contact page, there are only, for example, two unique addresses:

Duplicate addresses on Drupal view (caching?)

For some reason, the addresses are appearing multiple times on the Drupal view:

How can I ensure that only distinct addresses are shown for a given contact?

If you can't sort the above out by ensuring you specify Location type (ie have a field for Zip = Worship, as well as Zip = Mailing) then I would try the views_field_view module.

I would make one view that pulls together the address details for just Worship, and another one that pulls together just the address for Mailing. Both these need to be set to use Contextual Filter = contact id. And set them both to only show 1 result

Then pull those both in as a Field and obviously use the contact_id as the contextual filter (also needs using on the two views you have to create)


South African Rand Payment Processor Does anyone know of a payment processor that integrates with Civi and also accepts South African Rand? We're finding out that most payment processors don't accept African currencies.

While Stripe can accept payments in ZAR, they are currently unable to payout in that currency. Thus, they effectively cannot support operations entirely in ZAR.


location of civicrm.css on Joomla I just upgraded to 5.8.0 and quickly noticed that my contribution pages didn't look the same. Using an html inspector the page is using just css from the joomla template and not civicrm.css. Looking at the source on the contributions page I see:

link href="/components/com_civicrm/civicrm/css/civicrm.css?r=LSlvr" rel="stylesheet" type="text/css"

However that is NOT where the civicrm.css file is located at. Its at administrator/components/com_civicrm/civicrm/css.

I "fixed" it by creating a symbolic link in webroot/components/com_civicrm to the directory in the administrator directory. (this is not the right way to fix it, but it works now!)

Is this a known problem? Is it something with my resource urls or directory settings? I've been playing with them without success.

I fixed it. I opened Administer -> System Settings -> Resource URLs.

I then changed CiviCRM Resource URL from [civicrm.root]/ to administrator/components/com_civicrm/civicrm/

I then removed my hack (the symbolic link), refreshed the contribution page and all is well. I also verfied by looking at the source for the contribution page and it show the correct urls for css and jquery now.


Limitations for sending emails We are running a mass mailing from CiviCRM using the Sparkpost Extension. The cron job will only send 400 emails per execution.  Is this a limitation of CiviCRM? How do we increase it?

Environment:
WordPress 4.6.1 running Canvas-child theme.
CiviCRM 4.7.13

At Administer > CiviMail > Mailer Settings (civicrm/admin/mail) you will find settings for CiviMail delivery.

Do your settings have a Mailer Batch Limit of 400? If so, this was probably set on your site at some point.

The default is 0 (unlimited) I think; if it was set to 400 on your site this may indicate the task was timing out before completion. If you're having that issue, running the mail task more frequently may be a good alternative to adjusting the batch limit.


The apiv3 does not return joined fields Not much doc on API and joined table fields... Any special reason I can't get the contact's primary address in a membership query... Basically this

$result = civicrm_api3('Membership', 'get', array(
  'debug' => 1,
  'sequential' => 1,
  'return' => array("contact_id.display_name", "contact_id.street_address"),
));

Only returns contact_id.display_name

Membership doesn't have a contact details(apart from id) in its API call. To get the address and display name, I think you need to call a chain API -

$result = civicrm_api3('Membership', 'get', array(
  'sequential' => 1,
  'api.Contact.get' => array('return' => "display_name, street_address"),
));

More about chaining - https://wiki.civicrm.org/confluence/display/CRMDOC/Chaining


URGENT HELP Account Suspended This Account has been suspended Please help,

I cannot log into our database as there is an error message saying Account Suspended please contact your Hosting Provider for more information.

Does anyone know how to get around this or where to find help as we really need to log onto our database.

Thanks,

Grace

This sounds like an issue with your hosting provider rather than a problem with CiviCRM.  I would suggest that you get in touch with your hosting provider as the error message says.

If you don't know who your hosting provider is, I would suggest that you contact the person who set up CiviCRM for you.


How do I change the company logo Our company recently changed the logo design.  how do I update the home page. I've already changed it in our outgoing emails.

This configuration is at CMS level but not in CiviCRM. You can update the logo through theme config.

For Drupal

1. Navigate to Appearance >> Settings and under Logo image setting upload the new image and save.
2. Clear Drupal cache( and sometimes browser cache).

For Wordpress

1. Here it depends on the theme you using. For most of the theme you can change the logo by navigating to Appearance >> Header. You will be redirected to page where you can update the logo.
2. Save the theme setting.

HTH

Pradeep


Contribution forms with numerical quantities is not taxed properly We've got a 14.975% tax rate in the province of Quebec in Canada.

the taxes are rounded to the 2nd decimal so we lose information.

The taxes should be calculated on the subtotal instead of the unit price.

Thanks for helping!

The calculation is now (100*(1+0.15)) but should be (100*1)*1.14975

This patch has solved my problem:

https://github.com/civicrm/civicrm-core/pull/6520/files

PriceField tax_amount should not be rounded


CiviCRM SendinBlue email integration Has anyone in the CiviCRM community considered integrating CiviCRM with SendinBlue (https://www.sendinblue.com/)?

Not as far as I am aware (and a google search, which I am sure you have done) does not bring up anything significant.

Aside: I'm interested in developing marketing automation tools for CiviCRM. Similar to sendinblue and dotmailer and would be happy to chat further with you if you're interested (michaelmcandrew@thirdsectordesign.org).


How can I give anonymous users access to a new page? I've made an extension (using civix) that includes a page that's designed to be public facing. But I think the default permissions are blocking all anonymous users. How can I give people access to it, if they don't access-civicrm permissions?

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


Use Taxamo as a payment pre-processor The new 2015 VAT regulations of the EU are tough and Taxamo seems to offer a solution. The way it works is that Taxamo sits in the middle of the chain - between your site and the payment gateway. Taxamo integrates with payment gateways such as Paypal and Stripe.

The trouble is, then, to get CiviCRM talk to Taxamo. I don't know of any payment processor extension for CiviCRM that can do that. So I was wondering if anyone has an idea how to get a CiviCRM payment form work with Taxamo.

Thanks in advance!

P.S. The real need is to be VAT/MOSS compliant. I just don't know anything other than Taxamo that can automate that. If you know, please share.

This would be implemented as a payment processor extension. There is not a current extension written for Taxamo, but the documentation for implementing one can be found here.

They also say (at the bottom of this page) that you can contact them to see about getting plugins developed for additional shopping carts, the "cart" being a Civi payment page in our case here.


Bug reports and feedback I'm not sure where/how to offer user-level bug reports and feedback on my experience using the civiCRM.org web site itself to evaluate and learn civi.

I am aware of  https://civicrm.org/bug-reporting and the github site for reporting faults in civi itself, but I have a couple of UX feedback points and bug reports to offer, arising from just signing up to newsletters etc.

Thanks, and be gentle, I'm a newbie, hope this is not an uber-daft question!

If you have feedback about the civicrm.org site itself, you can give that feedback by one of a few routes:
* You can submit a JIRA issue on the "INFRA" project, rather than the "CRM" project, which tracks the software itself.
* You can raise the issue on https://chat.civicrm.org, in the "infrastructure" channel.

If the issues you're raising are due to UX issues in CiviCRM itself, you can submit those via JIRA.  That said - given that resources for any project are limited, simply submitting an issue to JIRA is unlikely to move it forward very far.  It's better to submit an issue than not to though!


Why doesn't API for Contribution Get work with multiple Financial Type ID values? I have this problem on my Joomla 4.6.2 system, and can reproduce it on the Joomla sandbox.  If I use the API Explorer to build a query like:

$result = civicrm_api3('Contribution', 'get', array(
  'sequential' => 1,
  'return' => "id",
  'contact_id' => 2,
  'financial_type_id' => "Campaign Contribution",
));

it works OK.  But if I try to specify multiple possible values for financial_type_id, such as:

$result = civicrm_api3('Contribution', 'get', array(
  'sequential' => 1,
  'return' => "id",
  'contact_id' => 2,
  'financial_type_id' => array("Campaign Contribution", "Donation"),
));

it generates a SQL error because it creates an invalid WHERE clause:

WHERE  ( civicrm_contribution.is_test = 0 AND civicrm_contribution.financial_type_id 0 )  AND (contact_a.is_deleted = 0)  LIMIT 0, 25

The "civicrm_contribution.financial_type_id 0" should instead be something like "civicrm_contribution.financial_type_id IN (1, 2)"

Is this a bug?

Instead of

'financial_type_id' => array("Campaign Contribution", "Donation")

try

'financial_type_id' => array('IN' => array("Campaign Contribution", "Donation"))

The API Explorer can generate this code for you if you select the IN operator.


CiviMail Mailing List opt-in checkboxes? We're a political organisation running CiviCRM 4.6 looking to make public campaign pages about local issues.

On these pages a site visitor should be able to:
 - Enter their name, postcode, email address
 - Often fill out a personalised message
 - Opt in to a mailing list on this campaign

With all this data being stored in Civi.

This feels like a CiviPetition, although I am struggling with the implementation.

Is it possible to have a checkbox in a CiviCRM Profile/Webform that, if selected, will add someone to a Mailing List Group?

I assume something is possible with Rules but I do not want to have to make custom rules for each webform. Trying to make creation of new petitions/campaigns as easy as possible.

Yes.  You can add "Groups" as a field to a CiviCRM Profile.  There's similar functionality available on Webform.

If you use profiles, only groups with the Visibility setting of "Public Pages" will be available for the petition signer to click.  If you use Webform, you can modify the widget to show a specific set of groups for that webform.

Note that the profile implementation has a limitation - if someone a) fills in a profile that has the "Groups" field, b) is already in your database, c) is already a member of one of the public groups, and d) does not check off the box for that group, they will be REMOVED from the group.

If that last part is a problem, and you're up for writing a custom extension, you can see a quick and dirty implementation I wrote to handle this exact scenario on Github.


Cannot update membership status (No drop down) After upgrading to Civicrm 5.21 (it's now on 5.5.3) there is no longer a drop down for changing membership when Status override is enabled.

This was working on 4.7 but sadly after the upgrade it seems to be just static.

Here is the example from the documentation

Any help much appreciated!

Update: So I fixed a JS error (maybe something with git, was in there as lower case).  No fix for the drop down issue yet though..

When upgrading check all customised files include all the correct changes for your current version.

I was missing a section of code in the membership template.


404 Not Found Error when running reports We moved our WordPress site from one cPanel account to another whilst changing domains. Everything in CiviCRM seemed to be working OK. But we've just hit a problem.

I can go to Reports -> Contact Reports -> Contact List - and get the screen with columns, filters, sorting OK.

But when I try to Refresh Results, or Print etc I get a 404 Not Found error.

Any help or hints of where to look would be much appreciated.

Most common reason I have run into a 404 error when I've moved accounts? File permission issues. Usually there are some files that are attached to the wrong user/group, typically. Your host should be able to look at the logs for you and pinpoint the file(s), directory(ies), etc where the permission errors are happening. I like it if I can get into a chat with them, as I can then run the process, generate the error, and they can see it in the logs.


How do I set the print order for address labels? I've created a site using Drupal (7.37) and CiviCRM (4.6.2) for a club that I am a member of. We send out a quarterly printed newsletter and sometimes need to insert personalised letters or other items for specific members. I can print the labels but I cannot see a way to control the order in which they come out, meaning that it is a nightmare to match up labels and inserts.

My label sheets come out in the order they were added to the database (ID field) and I'd like them in last name or even membership number (a custom field) order. Additionally the page of printed labels fills the left column, then middle column, then right column when I'd like them alphabetically filling the top row, second row, then third etc.

Is any of this possible?

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

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

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


Civi CRM Wordpress Theming After having a little demonstration at the FOSDEM i decide to test civiCRM and maybe use it in my startup. Actually i have the vanilla default installation of CIVI on a wordpress.

My actual issue is that the UI/UX is not as good as other SAAS CRM my bizdev want to use. Is there actually a repo of theme for CIVI or need i to make one by my own ?

Try installing Shoreditch and see if you like it better. If you want to customise things further, you could fork Shoreditch and alter it to your liking.


How to find out about changes in the latest Release Candidate? We would like to help test the monthly CiviCRM Release Candidate (RC) versions to contribute to more reliable releases. I found out the RC are published here along with the stable releases, so e.g. when CiviCRM 5.2.0 is released, it's accompanied by a RC for 5.3.0.

Now, in order to do focused and meaningful testing, we need to find out which changes went into the Release Candidate so we know which functionalities we should scrutinize most. Where can we get that information?

This is an excellent question. Before trying to answer, let me note a bit of the context:

When defining a test plan, several organizational and technical factors can weigh-in (e.g. perhaps certain extensions or use-cases are more important or more within your expertise; perhaps there's a rotation of responsibilities). The question focused on how to examine the change-list -- that's not the only factor, but it is an important one, so we should have a good answer.
The RC releases and general releases are lined up on rolling monthly cycles. You can get more specifics by reading the schedule of releases. I usually think about the schedule in reverse (from the release date). For example, v5.3.0 will be released at the start of July. The testing period for the RC (v5.3.beta1) is the previous month, June. The development period for v5.3.alpha1 is the month before that, May.
CiviCRM development is managed in Git/Github -- this is where changes are submitted and reviewed. Most reports about changes are derived from this data.
In a typical monthly cycle, there are 80-150 accepted proposals (aka "PR"s or "pull-requests").

There is no one perfect way to list changes during the RC period, but there are a few tools/techniques available.

Release Notes: This is a curated document (usually written by Andrew Hunt and Alice Frumin).

Good:

The notes are nicer to read and don't require as much technical skill.

Bad:

It takes a while to put them together -- so they may not be available until too late.

Examples:

For v5.2, the release-notes are tracked under https://github.com/civicrm/civicrm-core/tree/5.2/release-notes
For v5.3, the release-notes will be tracked under https://github.com/civicrm/civicrm-core/tree/5.3/release-notes
Once a release is published (e.g. 5.2.0), the long-term/supported URL for the release-notes looks like http://download.civicrm.org/about/5.2.0

Comments:

During the RC period, you might be able to find a draft of the release notes. Look in the PR queue and filter on "Label" (for the given version).
For more info, chat with @agh1 on Mattermost.

Github PR Queue: All changes are proposed in Github by filing a "pull request" (PR).

Good:

The full list is available when you want it, and it can be loaded in a web-browser.

Bad:

The filter options aren't good for your use-case. You need to try a few different filters.
You may need to check multiple repos (civicrm-core is the main one; but sometimes interesting things happen in civicrm-packages, civicrm-drupal, civicrm-wordpress, civicrm-backdrop, civicrm-joomla).

Examples:

All closed PRs in civicrm-core labeled master - These are changes approved during normal development. However, it includes all development phases of all versions. If you're testing 5.3.beta1, then focus on items approved during May.
All open or closed PRs in civicrm-core labeled 5.3. These are late-stage corrections proposed or approved during the 5.3 testing period.

Comments:

We have an open issue to improve the infrastructure so that it's easier to filter Github data based the target version ("Milestone").

Git: Every individual change and every PR approval is available in the git database.

Good:

This is the most accurate and flexible way to filter a change list. It is always up-to-date.

Bad:

This requires more technical proficiency -- e.g. understanding git and the Unix CLI.
The text in git is written by many different developers. The text varies a lot in terms of length/language/quality.

This is more powerful and more technical, so I want to give a longer discussion of examples.

Git allows you to display developer notes over a range of versions. For example, when studying v5.3, you might to view notes after 5.2 and before 5.3. This range is called 5.2..5.3 -- or, more specifically, origin/5.2..origin/5.3.

You can review developer notes for the range:

# Get a list of all developer notes.
git log origin/5.2..origin/5.3

Additionally, you can filter based on the affected code/subsystem.

# Get a list of all developer notes relevant to the table definitions
git log origin/5.2..origin/5.3 -- xml/schema/

# Get a list of all developer notes relevant to the DB upgrade steps
git log origin/5.2..origin/5.3 -- CRM/Upgrade/

# Get a list of all developer notes relevant to the "Financial" subsystem
git log origin/5.2..origin/5.3 -- CRM/Financial templates/CRM/Financial xml/schema/Financial

# Get a list of all developer notes relevant to the APIv3 framework
git log origin/5.2..origin/5.3 api/ CRM/Utils/API/ Civi/API/

All those examples use git log to show developer notes, but the same filters (by range and by folder) can produce other types of output. Compare:

# Get a list of developer notes for a folder (as above)
git log origin/5.2..origin/5.3 -- CRM/Upgrade/

# Get the same list and display it in a GUI tool (on local Linux/OSX workstation)
gitk origin/5.2..origin/5.3 -- CRM/Upgrade/

# Get the same list and display in short, one-line, summary format
git log --oneline origin/5.2..origin/5.3 -- CRM/Upgrade/

# Get the same list and include the relevant code changes
git log -p origin/5.2..origin/5.3 -- CRM/Upgrade/

# Get cumulative diff reflecting all those changes
git diff origin/5.2..origin/5.3 -- CRM/Upgrade/

If you're a CLI guru, then you can do further filtering. This is usually easiest with the --oneline format.

# Get a summary list which identifies the approved pull requests
git log origin/5.2..origin/5.3 --oneline | grep 'Merge pull'

# As above, but only show the PR#
git log origin/5.2..origin/5.3 --oneline | grep 'Merge pull' | awk '{print $5}'

# As above, but show the URL for each PR
git log origin/5.2..origin/5.3 --oneline | grep 'Merge pull' | awk '{print $5}' | sed 's;#;https://github.com/civicrm/civicrm-core/pull/;'

Of course, there may be other tools, but that's the one I use on a day-to-day basis to examine change history.

(Update)
If this kind of reporting is useful on a regular basis, then you might want to put these commands in a bash script -- then you can quickly re-run the same report. Here is an example of a custom report.


Why doesn't the activity "send email" have a 'schedule follow up activity' option I am using send email in civicase to send an email to a case resource (in this case a local council). At the time of sending the email I want to be able to schedule a reminder to check that I have received a response within 4 weeks. This schedule follow up feature is available in many of the other activity types but I can't see it in send email. It looks as if I have to manually create another activity to schedule the follow up. Have I understood that correctly? (and if yes is there a way I can change it?!)

Great question, and you're not missing anything: that feature just doesn't happen to exist at the moment.  It would be both useful and consistent with other activities.

With CiviCRM (and many other mature open-source projects), there often isn't a grand product plan, or if there is, many features come from people solving specific problems they or their clients have.  When the email feature was added, someone either didn't think about follow-up activities or decided it would be too much work.

On the flip side of this, however, it also means that there's nothing really stopping you or anyone from building that feature except for the time and expertise to write the code.  If you, a coworker, or a consultant can build it, I'm sure the core team would incorporate it into an upcoming version. You could also persuade them to build it by raising a ruckus and/or funds.

Unfortunately, this is one of the few parts of open-source where you really get what you pay for: if nobody shared the feature, it won't be there, no matter how logical it would be.


Completely lost. Help! No one at our organization knows how to use Civi. The person who set it up is no longer on staff. How do we even get in touch with someone? We urgently need to get into our account on the Civi website and have no idea how to update the login credentials. Please help!

CiviCRM is open source software so there isn't so much a 'company' to go to for help as a 'community'. Within that community there are Partners who can provide professional support but they and many other users also provide a lot of free help through StackExchange (SE) and via chat.civicrm.org.

If it would help, we could have a quick skype call (~20 mins) just to help sort out some basics from you, and then via SE etc help you with your more specific issues.

You can ping me via peter.davis59 on skype if you have it, or I can supply an email if you do not.

Otherwise, to help you find what CMS you have (which may help folk help you) you could try to go to your /user or /wp-admin - the former would confirm it was Drupal CMS (the website that sits in front of CiviCRM), the latter would be WordPress. Or your site might be Joomla.

Going to eg /user would then help you 'request a new password' if there is already an account that was set up (hopefully you can access the email of the person who is no longer on staff). With that new login you should then be able to access the CMS and through that, find a link to CiviCRM for your site.


Is there a way to re-send failed transactional emails using SparkPost email extension? Have been using the com.cividesk.email.sparkpost extension (v1.1) successfully on Civi 4.6.30 . Recently had an issue due to installing PHP mcrypt on the server, which caused the extension to be unable to retrieve the SparkPost API key. [More accurately: the call to CRM_Sparkpost::getSetting('sparkpost_apiKey') was returning a scrambled value.] This was resolved, once the problem was diagnosed, by re-entering the API key. (I've written a separate Q&A about that issue, as it's not SparkPost specific.)

During the time when the API key couldn't be accessed, numerous transactional emails and CiviMails should have gone out. The CiviMails can be re-sent easily enough but what's the way to deal with the transactional emails? There's no record in the extension's log file of mails that attempted to send during this period. Is there any queueing system for failed messages? Because the API key couldn't be correctly retrieved, presumably the messages won't have been linked to the user's SparkPost account. The SparkPost stats show no messages over that period.

I have two outside ideas that 'might' be helpful:

Is it possible Activities have been made for the emails that should have gone out? Emails from the Contact record will almost certainly have created an activity, and it's a commonly set option for emails sent via Scheduled reminders. If an activity has been made it will probably contain the email.
Do you have email logging turned on? Presumably not or you wouldn't be asking the question! But perhaps worth checking...


Error in CiviCRM for Drupal7 after Migrate from "Backup and Migrate" module on New Contact Form After I did a Backup and Migrate to a new system, I am getting two errors on any New Contact form. They are as follows:

Notice: Undefined property: CRM_Core_BAO_Tag::$tree in CRM_Core_BAO_Tag->getTree() (line 75 of /sites/all/modules/civicrm/CRM/Core/BAO/Tag.php).

Warning: Invalid argument supplied for foreach() in CRM_Contact_Form_Edit_TagsAndGroups::climbtree() (line 203 of /sites/all/modules/civicrm/CRM/Contact/Form/Edit/TagsAndGroups.php).

I also noticed that the tag box at the bottom of the page under "Tags and Groups" has gone missing. Is there any way to fix this problem without starting from scratch?

I figured out what happened. When I did the backup and migrate, Drupal set civicrm_tag.used_for to NULL. I set the field for all my tags to 'civicrm_contact' and it fixed the problem. No more errors. I just ran this query:
UPDATE civicrm_tag SET used_for='civicrm_contact';


Enabling 'New Organisation' button for Current Employer field in View Contact We recently upgraded to CiviCRM 4.7.19 on Drupal 7.52 and for some reason the New Organization button isn't appearing when searching for an unknown organization for a contact's current employer. I can add an organization via CiviCRM > Contacts > New Organisation but our backoffice staff liked being able to add from the person contact page. I've checked the console and there are no errors flagged and isn't a CSS thing as the element holding the button exists but just doesn't have the button markup e.g. instead of:

  New Organization

the page only has:

I've checked permissions and as far as I can tell everything is set ok. Is there a setting I'm missing?

Update

Looking at our l10n-js file I can see that the contactCreate object is not being populated:

CRM.config.entityRef = $.extend({}, {"contactCreate":[]...

Digging into the code I can see this is supposed to be created in Core/Resources.php (line 685):

'contactCreate' => CRM_Core_BAO_UFGroup::getCreateLinks()

Looking at CRM/Core/BAO/UFGroup.php I can see the getCreateLinks() function calls

public static function getCreateLinks($profiles = '', $appendProfiles = array()) {
    // Default to contact profiles
    if (!$profiles) {
      $profiles = array('new_individual', 'new_organization', 'new_household');
    }
    $profiles = (array) $profiles;
    $toGet = array_merge($profiles, (array) $appendProfiles);
    $retrieved = civicrm_api3('uf_group', 'get', array(
      'name' => array('IN' => $toGet),
      'is_active' => 1,
    ));

Running a similar API call on our install:

$result = civicrm_api3('UFGroup', 'get', array(
  'sequential' => 1,
  'name' => array('IN' => array("new_individual", "new_organization")),
));

I get no results, the reason is because the name is actually new_organization_5 not new_organization Still don't know how to fix

As you discovered, the system expects to have 3 reserved profiles: "new_individual", "new_organization" and "new_household". If you accidentally deleted or renamed those profiles (machine "name" field not the user-facing title) I suggest naming them back, or else creating new ones with those names.


Warning: Disabled/Deleted fields on Smart Groups After upgrading to CiviCRM 5.27 (and now, to 5.28) on Drupal 7, I see this warning message.
As you can see, GROUP is listed as "-" (minus).

When I try to click on settings (Gear icon), it shows me Group Settings empty fields:

When I click on Contacts in this Group (in Group Settings), it shows me all contacts in my CiviCRM database along with some notice warning (a lot of lines exactly like these - Undefined property and Undefined Index):

UPDATE
(January, 2021)
The problem is still there after update to 5.33.2. What can I do about that?

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


Joomla 3.8 & CiviCRM 4.7.x - front-end error 500 when logged in I upgraded Joomla to 3.8 on a test site and CiviCRM (4.7.24) seemed to work fine. I've now replicated the upgrade on a live server (a different config'd machine but both PHP 5.6.31) and while it seemed ok at first, after logging in as admin, certain Profile Edit & all Contribution CiviCRM pages give an Error 500 (the default Name and Address profile doesn't work - but a custom profile does). Dashboard seems to load fine.

I've checked another Joomla 3.8/Civi 4.6.31 site and am getting the same problem. As I've got a working 3.8/Civi am going to try and figure what's different between the installs, but meantime, thought I'd post in case anyone has something similar or any ideas.

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;
}


Action "send mail" not available for new contact Activity type id=8 (send mail) is shown for all contacts.
We made a new contact today, and "send mail" did not shown up in the activity drop down.

We don't have any idea where to look first, because the list of activity types is ok, and the new contact has the same subtype as all the others.


How do I record a group donation in CiviContribute? Our agency received a $867 donation from a group of unnamed individuals at an event (not connected with our agency). How do we record this donation without a contact (an individual or organization).

It's a good question, but every contribution must be tied to a contact.  The solution is to create a generic contact called "Group donations", and add the contribution to that contact.


How to enable email sending in CiviRules I've installed the Email API for CiviRules, but nothing about emails is showing up under actions in CiviRules. Have tried uninstalling and reinstalling, but no change. Is there another step that I need to be taking to enable email sending?

CiviCRM 4.6.33 on Drupal 7.56, CiviRules 1.15, Email API 1.10.

You should try to clear CiviCRM's cache as mentioned in CiviRules' documentation :

  If you add your action as a a managed entity (which we think is a good idea) you will obviously have to do a {yoursite}/civicrm/clearcache to make sure the new managed entity is available.

Cheers,
Olivier;


Reproduce CiviCRM configuration: best practice I have customized CiviCRM (translation, custom fields, module, view, report, menus, etc.) and I want to reproduce the configuration. What is the best way to go?

That's a good question that should have a canonical answer but doesn't.
Here's a recent similar question and answer: method for versioning configuration of civicrm?
I suspect there are other good references out there, please add them here.
Part of the challenge, which is not unique to CiviCRM, is that the definition of "configuration" can be grey in some areas.
Here is a list of tools and techniques that can capture and copy some parts of commonly considered "configuration":
1: The civicrm_domain and civicrm_setting tables.
You can back up these two tables and then restore them to a different site. This is a hack and could get you in trouble, but worth trying. Between the two of them, you've got most of the core "settings" type values.
2: Build your own extension to save your custom fields.
The instructions for building your own extension using civix show you how to generate an extension that saves the configuration of your custom fields.
3: civicrm_report_instance table
This can be backed up and restored on it's own, it's fairly safe.
4: civicrm_extension table
This is the list of installed extensions with configuration. You'll need to also have the matching extension directory.
5.1: Extension: org.civicoop.configitems

https://lab.civicrm.org/extensions/configitems

This extension allows you to export some site configuration to JSON, which you can package as a related custom extension for your site. (See also Jaap's answer on this question.)
5.2: Extension: CiviConfigure (eu.tttp.setting)
There's an extension which appears to be designed to solve this problem for settings (may not handle eg Contribution Pages which are entities?), but it's out of date, here:

https://civicrm.org/extensions/civiconfigure
https://github.com/eileenmcnaughton/eu.tttp.setting

5.3: CiviCRM Config Export (nz.co.fuzion.configexport)
Imports/exports config & entities to YML.

https://github.com/fuzionnz/civicrm-configexport

6 bin/csv/export.php
A script you can use to export option values and tags and such. Assembly requied.
7: API
You can use the api to retrieve and set various entities, e.g. using the cv tool.
8: CiviCase specific
For CiviCase, one of the original arguments for using external files was for versioning and managing dev/production. You can still use xml files for its config.
...
I've left this as an open community wiki and encourage others to add to this list.


New member gets user account I would like to have a similar situation to the following.

When a new member registers herself. She will automatically create a new User account for Wordpress. If the user changes the information of this user account (name/mailaddress) this is automatically synced with the information in the CRM.

The user has access to certain elements of the site for as long as they are members.

I also want to use the user accounts to make an integration with Nextcloud so that the users can login there with the same credentials. Contact groups must be synced then.

Any ideas?

You can use a combination of CiviCRM WordPress Profile Sync (which provides 2-way sync between WordPress profiles and CiviCRM contact details) and CiviCRM WordPress Member Sync to achieve this.

Have a look at the docs for CiviCRM WordPress Member Sync to see how you can use the Groups or Members plugin to restrict access to WordPress content for your members.

A simple Membership Contribution page in CiviCRM is all that's required to enable sign-ups - with the added benefit that you don't have to enable the WordPress setting that means "Anyone can register".


Creating a custom payment method with conditional field So I understand that you can assign a payment processor any payment method - however - I am trying to create payment methods that replicate the behavior of Credit Card and Check.  For example - when manually adding Check or Credit Card contributions - you will then get a field for check number or last 4 digits of the card respectively.

If I make a payment method called credit card - other, I would want those credit card fields to also populate.

Is this hard coded?

Themak, Nice question. This are hardcoded in core file but you can create your own field  for each payment method using buildform hook. Here is the snippet on how to do that

function custom_civicrm_buildForm($formName, &$form) {
  if ($formName == 'CRM_Financial_Form_Payment' && !empty($form->paymentInstrumentID)) {
    if ($form->paymentInstrumentID == CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'payment_instrument_id', 'Test')) {
      $form->assign('paymentFields', array('source'));
      $form->add('text', 'source', ts('Source'));
    }
  }
}

  Note: The above snippet is not fully tested i have just created blindly, but i am 100% sure it should work


Import exisiting Membership data I run a large non profit association that provides free legal advice and advocacy for older tenants. Our current database has two roles. One is a global role so that Head office can look at all members and the other is that each branch can log in and look at its members in that branch.

My question is does CiviCRM allow me to essentially have the same type of setup that we have now. That is can i have groups(branches) that i can restrict log in to only that data, and then those of us at hq can log in and veiw all the branch data. We currently have 17 branchs and can import all data by csv?

You can control access to contacts via a number of routes. It might help narrow down the options if you clarify what you consider to be a 'member' ie are they someone who 'pays' a membership fee to cover a specific period, or something vaguer?

One way we have provided the multi-level control that you could use is by treating CiviCRM Relationships (eg between the Branch and the Member) as the control mechanism.

So an 'Officer' who has a relationship to a Branch, can see the Members who have a relationship to the same Branch, but no other contacts.

If the Branch has a relationship to a State level organisation, which then in turn has a relationship to a Federal level (for example) then the permissioning flows up (or down), ie an Officer at the Federal level sees 'all', an Officer at the State level sees all members of all the Branches in that State.

You can read more about this Extension we made for this usage here https://civicrm.org/extensions/relationship-permissions-acls

Otherwise there are built in ACLs that can work off Groups and other CiviCRM features which you can read about here -http://book.civicrm.org/user/current/initial-set-up/permissions-and-access-control/

It may take some thinking through but I would expect CiviCRM can replicate your requirements. HTH


What impact may deploying a changed Drupal DB have on CiviCRM? We would like to push our Drupal development environment to production. We have CiviCRM integrated. Obviously our production Civi data has changed since we created Dev (Drupal+Civi).

Is there any documentation explaining best practices for pushing out Drupal updates from a development environment to production without affecting CiviCRM's current db?

Thanks

Generally, CiviCRM's data is stored in separate tables and you can treat the CRM and CMS as separate entities.

Many people store the CRM and CMS in separate databases for convenience (eg exampleorg_drupal & exampleorg_civicrm).

Particular items to check, though:

If you are using Webform CiviCRM or CiviCRM Entity, you may need to rebuild connections between referenced CiviCRM entities (eg contribution pages, contacts, ...)
You may want to check your civicrm_uf_match tables for mismatches. This maps Drupal users to CiviCRM contacts, so changes on either side, eg users added on the old Drupal DB might trigger an incorrect match to a Drupal user in the new Drupal DB.

Once the transition is complete, you may need to give some well-placed kicks to get things running smoothly. These may include -

Clearing Drupal and CiviCRM caches.
Deleting the contents of CiviCRM's templates_c directory.
Rebuilding Drupal's registry (drush rr)
Correcting/deleting the Drupal variable civicrm_class_loader

If a CiviCRM install permits any anonymous input (including recording user actions like CiviMail opens, contributions or profile submits), working at the whole-DB level can mean choosing between downtime (disabling the site while you make changes) and potential data loss (losing data while you switch between a minutes-old backup and the current DB).

For that reason you might want to look into practices that let you deploy change in smaller parts, since that means you can integrate updates will reduced risk at each step. There is more established practice of this on the Drupal side, with tools like Features, WFTools, and (in D8) Configuration Management.


How can my case activities show up on an organisations profile? When I log case activities I often tag in an organisation or individuals name but when I return to the home screen, search for the organisation and check if there are any new activities or relationships listed, there are none.  How can I get these two parts of the CRM to work together.

I think by "tag" you mean put their name in the "reported by" field or something like that. Case activities don't appear in "non-case" contexts. This was originally a design goal to both keep case data more private and force people to keep case data inside cases instead of a mix of places.

So the short answer is you need to go to the Manage Case screen to see case activities.


joomla privileges: can't grant allow to add contacts Operating CiviCRM 4.5.6 on current Joomla  3.5.1.

I have set up three groups which should have different access levels to view, edit and add contacts.
Have configured them to be in group special as suggested elsewhere and allowed them access to Access Administration Interface in global permissions.

When I try to add allow to the add contacts group this automatically resets to "Not Allowed" after I press save..

It went OK with the other privileges but not with add contacts.

Dumbfounded.
Can somebody help?
P.S. where are these privileges stored in Joomla anyway?
Checked all the tables and found nothing which represented the privileges in any way..

Update to the latest Joomla version, which is now 3.7.4. There were problems with the ACL settings for CiviCrm in earlier versions that are solved in the latetst versions of Joomla.


ERROR Upgrading to CiviCRM 4.7.28 - Warning: require_once(CRM/Core/ClassLoader.php): I am on Joomla version 3.8.2 with Php 7. I tried to upgrade to CiviCRM 4.7.28 but I received and error message (I didn't capture it) that it could not unzip the file because I have php 7. Unfortunately, I no longer have access to the administration panel as I am getting a blank screen.

These are the error messages:

Warning: require_once(CRM/Core/ClassLoader.php): failed to open stream: No such file or directory in /home/pastoral99/public_html/administrator/components/com_civicrm/civicrm.settings.php on line 462

Fatal error: require_once(): Failed opening required 'CRM/Core/ClassLoader.php' (include_path='.:/home/pastoral99/public_html/administrator/components/com_civicrm/civicrm:/home/pastoral99/public_html/administrator/components/com_civicrm/civicrm/packages:.:/opt/alt/php70/usr/share/pear') in /home/pastoral99/public_html/administrator/components/com_civicrm/civicrm.settings.php on line 462

Please HELP!

Check if the file ClassLoader.php is on the file system. The location for Joomla is:

../administrator/components/com_civicrm/civicrm/CRM/Core/ClassLoader.php

Part of an upgrade procedure is to remove the old version and unpack the new version in the same place. If the unpacking fails the above error is shown.

Another reason for the same error can be the wrong value of $civicrm_root in the civicrm.settings.php file. More information in question Fails to open ClassLoader.php file .


Recurring payments being set to pending - Stripe I've inherited a CiviCRM 5.21.0 install on Wordpress, using Stripe to process membership payments. When a member chooses the "recurring payment" option on signup (Please renew my membership automatically), CiviCRM doesn't accept that as paid and doesn't add them as members. Instead they are listed as

Pending (Incomplete Transaction)

Non-recurring memberships are entered without a problem.

Any help appreciated.

Go to your System Status page and check for any stripe warnings

In particular look for any notices about Stripe webhooks that might need resetting.

Also ensure you are on latest versions.


How do I hide exposed filter options in Drupal View? Using CiviCase and need to hide two case status' that we aren't using from Drupal Views exposed filters (Pending and Urgent).

Pending and Urgent are disabled in the CiviCRM Case Status UI.

Just want end users to see Ongoing and Resolved as options.

Accomplished using Better Exposed Filters.

Went to BEF Settings, scrolled down to "More options for status"

Expanded Rewrite filter options

Under Rewrite the text displayed added

Pending|
Ongoing|Ongoing
Resolved|Resolved
Urgent|

Results in only Ongoing and Resolved as options.

Loved Better Exposed Filters prior to using this feature, now if you could alphabetize options I could get some sleep!


My contribution pages have gone blank Joomla 3.8.5
CiviCRM 4.7.29
PHP 7.0.7
I have four contribution pages for different membership levels, Bronze, Silver, Gold and Platinum. Everything seemed to be working and I had members signed up through all four pages. At some point, not sure when, three of them stopped working - Bronze, Silver and Platinum. I only found out because potential members emailed me to tell me they couldn't access the pages. I checked from the front end by selecting the appropriate menu items and found that only the Gold went to a contribution page, the other three only produced a blank whit page. I can't find anything in the log that helps.

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

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


CiviCRM issue when subscribing on behalf of an organisation with 4.7.3 and 4.7.4 releases A few weeks ago, my team started using CiviCRM (4.7.1) with Drupal (7.42). We created different Web pages to test different membership types (individual and on behalf of organization). Everything seemed to be good back then. When someone subscribed on behalf of an organization, both types of contacts were created and a relationship (Employer/Employee) was set. We upgraded to CiviCRM  4.7.3 and now when someone subscribes on behalf of an organization, only the contact is created, not the organization anymore. Same issue with the 4.7.4 release.

Once the membership is submitted:

with 4.7.1:

Notice : Array to string conversion dans   CRM_Contribute_Form_ContributionBase->buildCustom() (ligne 650 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php).
Notice : Array to string conversion dans    CRM_Contribute_Form_ContributionBase->buildCustom() (ligne 650 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php).
Notice : Undefined index: html_type dans CRM_Contribute_Form_Contribution_Confirm->buildQuickForm() (ligne 520 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/Contribution/Confirm.php).
Notice : Array to string conversion dans CRM_Contribute_Form_ContributionBase->buildCustom() (ligne 650 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php).
Notice : Array to string conversion dans CRM_Contribute_Form_ContributionBase->buildCustom() (ligne 650 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php).

with 4.7.3 or 4.7.4:

Notice : Array to string conversion dans CRM_Contribute_Form_ContributionBase->buildCustom() (ligne 650 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php).
Notice : Array to string conversion dans CRM_Contribute_Form_ContributionBase->buildCustom() (ligne 650 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php).
Notice : Undefined index: html_type dans CRM_Contribute_Form_Contribution_Confirm->buildQuickForm() (ligne 521 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/Contribution/Confirm.php).
Notice : Undefined offset: 0 dans CRM_Financial_BAO_FinancialAccount::getFinancialAccountForFinancialTypeByRelationship() (ligne 235 dans ******/sites/all/modules/civicrm/CRM/Financial/BAO/FinancialAccount.php).
Notice : Array to string conversion dans CRM_Contribute_Form_ContributionBase->buildCustom() (ligne 650 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php).
Notice : Array to string conversion dans CRM_Contribute_Form_ContributionBase->buildCustom() (ligne 650 dans ******/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php).

The only difference is a new bug from 4.7.3:

Notice : Undefined offset: 0 dans CRM_Financial_BAO_FinancialAccount::getFinancialAccountForFinancialTypeByRelationship() (ligne 235 dans ******/sites/all/modules/civicrm/CRM/Financial/BAO/FinancialAccount.php).

We tried this on the demo site and we have the same behavior. See http://dmaster.demo.civicrm.org/civicrm/contribute/transact?reset=1&id=4

Any hint would be welcome!

I changed it to be 'optional' and it worked for me. http://dmaster.demo.civicrm.org/civicrm/contact/view?reset=1&cid=225

Can you confirm this is the issue?

I  feel like this has come up recently but don't have time to search SE or JIRA - can you try and track down if an issue exists, or if one has been 'fixed' recently, then reopen it?


Mass SMS recipients count Wordpress 5.5.3, CiviCRM 5.31.0.
While testing Mass SMS with new Twilio account we've discovered it does not quite work. Searching for a solution here and across lab.civicrm.org haven't helped much. Logs are empty so it is not an error or is not considered as an error by CiviCRM. The most popular related solution ( replace "is_deceased" from NULl to 0 in the database ) hasn't helped. Mass mailing works fine and the number of recipiens counted is correct. Individual SMS sending works also. The only clues we have are:

"Send SMS" action is not visible for individual contacts.
Attempt to create Mass SMS for all contacts in the database ( around 10 000 ) displays only 5  contacts on "Total Recipients: 5" counter.
Probably it is something with data in the database. We were having big updates for both wordpress and civi past weeks on a decent hosting so things might have been a little messy. The question is, where to start with debugging. Perhaps, if we saw which exactly contacts were counted, we would be able to find what all these 5 have in common and figure out the next steps. Any clue will be helpful.

Kudos to Demerit and petednz-fuzion for helpful pointers, see below:

Demerit: Dummy SMS extension
petednz-fuzion: check your log_civicrm_option_value table for option_group_id = 35 to see who changed it

It is possible to find recipients of each mailing (even scheduled/not sent) via MySQL following these steps:

Table log_civicrm_mailing gives us our Mass SMS id
Table civicrm_mailing_recipients contains all recipients of all mailings (mass sms included) in the format:
mailing_id/contact_id/email_id/phone_id
From here we can explore each "phone_id"  record in civicrm_phone table, where we can see "phone_type_id".

And this is a funny part: all my 5 recipients have phone_type_id=2 ("Phone") while "Mobile" phone type has phone_type_id=1. So, it seems Mass SMS in my case checks if phone type is Phone, not Mobile.
Advanced Search by "Phone type=Phone" returns only 3 numbers, but it seems to be another story. Perhaps, it worth checking what exactly happens on line 227 of \CRM\Mailing\BAO\Mailing.php in this regards:
'location_filter' => CRM_Utils_SQL_Select::fragment()->where("$entityTable.phone_type_id = " . CRM_Core_PseudoConstant::getKey('CRM_Core_DAO_Phone', 'phone_type_id', 'Mobile')),


Drupal Rules - Condition "Civicrm Contact has email" appears to not be working The desired outcome was to create a drupal user record if and only if an email exists on the contact  - when a membership was created/updated.

To do this I wanted to add the condition "CiviCRM Contact has Email".

Testing this on multiple sites I've come to the conclusion that it doesn't appear to be working as advertised - it's not returning true when the associated contact has an email.

I've tested using these two stripped down rules - (It's not working on civicrm contact is updated either) - pasted below.

The only think I can think off that could be causing this is that the data selector is not correct? I tested this by outputting this using the debug action but perhaps it needs an ID not a "contact" or vice versa? I can't see any errors in the drupal log that would indicate this though. The rule is returning successfully - it's not generating any warnings.

Membership update

{ "rules_test_2" : {
    "LABEL" : "Test 2",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "civicrm", "rules", "devel" ],
    "ON" : { "civicrm_membership_edit" : [] },
    "IF" : [
      { "civicrm_entity_contact_hasemail" : {
          "contact" : [ "civicrm-membership:contact-id-contact" ],
          "location" : "0"
        }
      }
    ],
    "DO" : [
      { "drupal_message" : { "message" : "Has email" } },
      { "devel_debug" : { "value" : [ "civicrm-membership:contact-id-contact" ] } }
    ]
  }
}

Contact update

{ "rules_test" : {
    "LABEL" : "Test",
    "PLUGIN" : "reaction rule",
    "OWNER" : "rules",
    "REQUIRES" : [ "civicrm", "rules" ],
    "ON" : { "civicrm_contact_edit" : [] },
    "IF" : [
      { "civicrm_entity_contact_hasemail" : { "contact" : [ "civicrm-contact" ], "location" : "0" } }
    ],
    "DO" : [ { "drupal_message" : { "message" : "Has emali" } } ]
  }
}

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


Does CiviCRM work with Drupal 8 and how can I help? What is the status of CiviCRM working with Drupal 8? And how can I help in terms of testing or funding this development?

UPDATE: Please head to this Q+A for documentation information / links or head direct to the installation documentation
There is a channel on Chat here


Is there an easy way to add YTD giving to receipts? We have a client that we moved from Donorperfect who brought up that they feel the receipt tools are incomplete without the ability to include YTD (year to date) giving on receipts. This seems like a simple and common request. Am I missing something simple here?

Install Jamie McClelland's Summary Fields extension - see here - and insert Total Contributions this Year as a token.


Event Template Start Date I created an event template years ago, and when I use this template to create a new event, it auto populates the start date with a very old date. If I edit this event template, the start and end dates aren't shown as something that can be modified.

Where is the auto populated start date coming from and how do I change it? Ideally it would show today's date so that I don't have to scroll through months and years to get to a future date.

We are running CiviCRM 5.8.2 on Drupal.

I just did some testing on mine - it works the same way. It appears that "templates" are actually created and saved just like an actual event. So you'll find the data in the civicrm_event table just like all your other events. It looks like it saves it with a start date that is the same as the date you inputted the template (because date is a required field, but you aren't given the option to input one). The only way I can find thus far to change this is to go into your database, find that template, and edit the date. I just manually changed one of my templates via PHPMyAdmin and sure enough when I go to use it, that date is now the one selected. So at least then you wouldn't need to scroll so far back?

I wonder if someone has an edit they've done to make the date field available when creating a template.


Installing CiviCRM on Local: Getting Uncaught Exception Thrown I am beginning to build a new version of our existing Drupal 7 site locally, which has CiviCRM 4.7.15 installed. I installed a fresh copy of the same version of CiviCRM into a fresh SoopterTheme Drupal 7 demo and the installation was successful, however, when I went to review permission settings or click on configuration check list, I get the following error, site-wide. Drupal and CiviCRM both have their own usernames and databases:

  Additional uncaught exception thrown while handling exception.

I have run through this process multiple times and get the same error. I also received this same error when trying to set up a local copy of the existing site.

If I run any drush commands, I get:

Drush command terminated abnormally due to an unrecoverable error.                                                                                [error]

Initialization Error

Array
(
    [callback] =&gt; Array
        (
            [0] =&gt; CRM_Core_Error
            [1] =&gt; simpleHandler
        )

    [code] =&gt; -24
    [message] =&gt; DB Error: connect failed
    [mode] =&gt; 16
    [debug_info] =&gt;  [nativecode=No such file or directory]
    [type] =&gt; DB_Error
    [user_info] =&gt;  [nativecode=No such file or directory]
    [to_string] =&gt; [db_error: message=&quot;DB Error: connect failed&quot; code=-24 mode=callback callback=CRM_Core_Error::simpleHandler prefix=&quot;&quot; info=&quot; [nativecode=No such file or directory]&quot;]
)

Initialization Error

Array
(
    [callback] =&gt; Array
        (
            [0] =&gt; CRM_Core_Error
            [1] =&gt; simpleHandler
        )

    [code] =&gt; -24
    [message] =&gt; DB Error: connect failed
    [mode] =&gt; 16
    [debug_info] =&gt;  [nativecode=No such file or directory]
    [type] =&gt; DB_Error
    [user_info] =&gt;  [nativecode=No such file or directory]
    [to_string] =&gt; [db_error: message=&quot;DB Error: connect failed&quot; code=-24 mode=callback callback=CRM_Core_Error::simpleHandler prefix=&quot;&quot; info=&quot; [nativecode=No such file or directory]&quot;]
)

Any guidance is appreciated.

Edit: I reinstalled using the same database user for Drupal and CiviCRM and it seemed to have worked initially but I am getting the same error again the next time I went to access the site locally.

If installed locally, your max_allowed_packet in your .ini file or my.cnf file could be too low. Since it's local, I would set it high and forget it. Something like 100M or 500M should do the trick. See https://stackoverflow.com/questions/7942154/mysql-error-2006-mysql-server-has-gone-away  or  drupal.org/node/1014172


Filter mailing list by country Could you tell me how I can filter a group/mailing list we have to view by certain countries? For example we have a 'Youth Collective' lsit but we'd like to filter this by addresses to see all that are from the UK.

Thanks,
Megan
megan@restlessdevelopment.org

You can do this via the advanced search:

Select the group you want to include in the 'Basic Criteria' section and then the country within the 'Address Search'.


Add CiviRules action I am starting to experiment with civirules, and it looks like it's going to help a lot for automated workflows. There are some actions that are missing and am interested in playing to add more.

Using Wordpress 4.92, Civicrm 4.7.27, CiviRules 1.17

Am looking here: https://docs.civicrm.org/civirules/en/latest/create-your-own-action/ but am having a hard time understanding exactly what I need to do to add an additional action.

"It is pretty simple (at least that is what we think) to add your own actions to the CiviRules Engine. You can either do that by adding it to the CiviRules extension or by creating your own extension and including your own action." Well it doesn't seem simple because I can't find a simple way of doing this.

There's some existing action items that would easily serve as templates for what I want to do, so I'd like to add an additional action to the existing CiviRules extension.

I've attempted to code additional mgd.php and .php files in the appropriate folder structure. But when I do this, the class isn't registered in the database - obviously.

"If you didn't create your extension with civix you should add the hook_civicrm_managed_entities to your extension and return the array below." How do I do this exactly if I'm adding to the existing extension and not creating a new one? Where do I put the hook? What's the syntax? I've never worked with hooks before. I've Google searched for hook_civicrm_managed_entities but I'm not sure what this is as it doesn't return anything. Is this the hook_civicrm_managed(&$entities) hook that is in https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_managed/?

I attempted to use create a hook directory as per https://docs.civicrm.org/dev/en/latest/hooks/setup/wordpress/ and use the code that is recommended and that broke my site. The info in this doc seems to imply that it relates to WordPress 4.6, and the link https://civicrm.org/blog/haystack/working-with-civicrm-46-in-wordpress has a comment that says the civicrm_managed_entities hook won't work properly with WordPress? "Tim Otten reminded me (thanks Tim) that there's another hook which won't behave as expected in WordPress, which is 'hook_civicrm_managed'. Callbacks work fine but, at present, there's no logic for managing the entities in WordPress. Another one for the roadmap, logged here for reference."

Help please!! Step 2 and 3 I can easily do, but Step 1, not so much.

great that you are trying to add your own actions! And great that you are sharing your exerience with the documentation here.

If you added a .mgd.php file you will have to do a '/civicrm/clearcache' to make sure that your class is registered. Did you do that? If not give that a try and that might fix your issue.


Can I find the target contact ID in hook_civicrm_buildForm? Summary

Is it possible to extract the target contact ID of a form during hook_civicrm_buildForm?

Details

We are trying to manipulate a wide range of fields across the site, ones that might be present in event registration forms, contact profile forms, etc.

We want to disable editing of the field if there is a value in it, and the contact has a certain value on their record.

The workflow we have in mind is...

Is 'Field A' on the form?
If yes, does 'Field A' have a value already?
If yes, is there a 'target contact' for the form (ie: a logged in user is registering for an event, or updating their profile)
If yes, fire an API call to get the value of 'Field X' from the record of the target contact.
If 'Field X' is 'Yes' then disable editing of 'Field A' on the form.

We understand that not all forms will have a target contact ID, and we would only want to go through this logic if there was one. So it wouldn't do any of this if an anonymous user was signing up to an event; but would if a logged-in user was.

The logic itself isn't the problem, but we can't seem to find the target contact ID stored anywhere at this point.

Thanks in advance!

Not sure about them, but you can at least always retrieve the logged in user? Like so:

$session = CRM_Core_Session::singleton();
$userId = $session->get('userID');


Logo - Updating with new logo I would like to update our logo in automatic email links to reflect the new brand.  I have not tried anything as I am new to the programme but would like some assistance here.

You will probably want to introduce an image or images into your message templates, which you can find under admin>mailings>message templates.

The documentation for this is at https://docs.civicrm.org/user/en/stable/email/set-up/#creating-and-maintaining-message-templates


Being given the contribution_id, how can I update the Contribution? I have a lot of Organizations, each with its administrator.

Authenticated users can contribute to those (for membership, participation, or simple donation), via Webforms including a Contribution page where the user can select "pay later".

For safety and ease reasons I don't want those organization administrators to use the Civi Contribution Search UI to update a "pay later" Contribution when they receive a check (Check # and Status). And I am looking for a solution to do that in a monitored way.

One way could be : a Views report can provide him with the Contribution_id number.

But then, what ? For instance, how could I use this contribution_id as a token to open a form to update this payment ?

I am open to any suggestion.

(I run Civi 4.7.16 / Drupal 7.54)
(I tested Views VBO, but unsuccessfully)
(I am not a Programmer)

I do not know how exactly but I am sure there will be guys and girls around that do. But you should be able to link a Webform (with CiviCRM integration - check https://www.drupal.org/project/webform_civicrm) to a View and pass a contribution_id to that form.


Member only page-login using civicrm database We have a website, We also use civicrm for our membership and communications. Now we have our 16000 records entered into civi and all correct, can we restrict access to some member content pages(not written inside civi), Essentially we want to create a login for the member only content, have a script check with civi that the membership is still current, maybe check member id and email then allow access to the pages we want members to have access to. We dont want members to signup and pay for membership because the folks we represent dont do credit cards!! We just want a page or area of our website thats restricted to our members rather than the entire webiverse.

Or am I dreaming that it can be done?

Understanding the parts

There are a few parts to this question - your CRM (CiviCRM, which has your membership list), and your CMS (Drupal, Joomla or WordPress, which has your website pages). Your CMS has Users while your CRM has Contacts. These may match, but you can also have a Contact without a matching User. The CMS controls access to Pages. In order to access restricted pages, the User generally needs to log into the CMS first.

So there are some "dots to join". In your case,

All your Member Contacts will need a matching User in the CMS
The CMS needs to restrict access for some Pages to some Users
There are access criteria for the above (User must connect to Contact which has current Membership)

How you implement this depends on the CMS you're using, and what makes most sense for you. (Including details like the CMS in your question will inform the answers you get.)

Drupal

There are wiki docs on how to sync Contacts to Users. This page looks a bit old - definitely test this process on a development site.

In Drupal there are multiple ways to slice and dice the content access situation ... sorry! Some options would be Content Access (suited for smaller sites where you have one or two restricted pages), Node View Permissions (restrict by member-only content type), or reviewing a longer list of content access options.

(You could also implement your own access restriction using CiviCRM checksums alone, but I think I've given you enough new questions already!)

Other CMS

This answer doesn't specify how to do this for other CMS (nor does it give specific instructions for Drupal, just a few options). If you can help improve this answer, you're welcome to edit it wiki style, OR add your own solutions for Joomla / WordPress.


A bit of automation? I'd like to automate couple of settings in my contact list and I was wondering can these be done without writing special extensions or Drupal modules:

Couple of people qualify to be a Head Coach of the Club, so when the time comes one of them will be selected via Relationships. Can I remove an existing relationship from other person when new person gets selected? So there's only 1 head coach in each club?
There's 2 types of players - Junior and Senior (I have this as a custom select field) - when a player turns 18 or when I create a new one via Webform, the type is automatically selected for the right age?

I tried Drupal Rules, Civirules but I didn't find an easy way to do it so no manual work is necessary...

1/ You can do this in a Drupal Webform so that the original coach has their relationship expired

2/ we did some work for another age-based organisation to ensure that only the valid membership type was available based on the Date of Birth. It isn't something that I could just 'share' but if it helps you and you have a bit of budget we could probably extract what you need fairly quickly.


Recommended cron email sending rate for Mosaico mailings? Various reports indicate that Mosaico can fail to send large mailings based on memory and cron rates for sending.

How might one calculate the maximum/most effective mailing rate considering available memory and php memory limit settings so as not to inadvertently have a failed mailing.

What I have experienced is that if a larger mailing fails nothing shows as delivered. It never starts. To address this I throttle the number of mailings sent on each cron run. The number can be effected by a few things such as size of the mailing, available memory, PHP memory limit, etc. If you host will allow it I would increase the PHP memory limit first. Then work on a reasonable amount of messages sent per batch.

In most cases I increase the frequency of the cron runs. For Example:

With a mailing that has 1000 recipients and we throttle the mailing to 250 per run then set the cron job to run every 5 minutes we can get the job done in 20 minutes.

Most of the Mosaico mailing we are doing are larger newsletters that are not time critical so sending multiple smaller batches works fine and insures delivery.

Hope this helps


How do I automatically add a user to a Backdrop (or Drupal) role? I figured out how to automatically add a newly-created user to a group when they fill out a contribution or event page, but I want to add them to a Backdrop role as well.  How can I do that?

First, go to your modules listing and enable "CiviGroup Roles Sync":

Next, go to Drupal's Configuration menu » CiviCRM » CiviGroup Roles Sync » Add association rule:

From here, you can set the CiviCRM group that corresponds to the Backdrop/Drupal role:

Note this only works when contacts are newly added to the group (or role).  However, you can manually synchronize in the configuration settings.


Feature Request: Partial Event Registrations (like abandoned carts) Is it within the realm of possibility to have CiviCRM create a record of an authenticated users registration after they hit submit (before completing payment)? It would be awesome to use this to see what someone selected and judge why they did not complete payment. Sometimes, a user will have a payment error and quit through frustration (card decline, address mismatch, etc.) or spontaneously have to stop their registration (need to go, kid crying, etc.). It would be awesome if they could pick up their previous session and complete it.

Additionally, sometimes we encounter strange errors on CiviEvent registrations that I am having a hard time finding in the debug logs. It would be great if the partial registration could also have any errors attached to it somehow.

If this was enabled, extensions could also offer exit-detection and offer discounts to continue with a registration, or follow-up emails to complete it.

Thank you for your ideas and thoughts.

It depends on the scale of the partial registrations you have, but I don't think you need any additional functionality. We get a small number and I think they are best followed up manually. All of them have been people failing to complete the transaction in PayPal. One was them was someone who fell asleep (!) and the rest were people uncomfortable with anything online and not understanding PayPal and a friendly personal email was the right thing where an automated message would probably have not helped.

You can Find Participants with status "Pending (incomplete transaction)". Also I think you need to do it manually so that you can see if they tried again soon afterwards and were successful, which has often been the case.


Workflow and Automation I'm trying to figure out how to do automated workflows.
This is an example of one such process:

Member fills in a request to host an event using Caldera Forms (at the moment).  I currently have some custom code that creates the event in CiviCRM for me, using the API, upon submission.
Reviewers must approve the event request
Once approved, an email needs to be sent to the event host with specific event information
We then wait for the event host to send us a document with the announcement
Reviewers must approve the announcement
An announcement is then bulk emailed to all members
Opens to the general public 3 days after the given date of opening to members

I've looked at CiviCase, which would be great to manage each of these events but is there a way to trigger the activities above from a Case?  I need to be able to pull information from the event record for various parts of this (steps 3 and 6, for example).
I currently do this manually - I send the email by manually updating the email before sending.
We get so many requests that I sometimes lose track of where I am with each of these events.  If I also have to manually update CiviCase, that adds to the workload and kind of defeats the purpose of streamlining this process.
Thoughts?  Suggestions?  I can write scripts to call the API if need be, if that is the only way but seems that it would be part of the app?
Thanks
Norm

Take a look at civirules, with the email api extension also enabled so that the action of sending an email is available. That might get you partly there. You can set rules for when events change or activities are added, which could trigger your email.


How to disable one checkbox in a group based on text box having value I have the webform module installed on Drupal 7.41 with CiviCRM 4.7.2.  I'd like to make an event registration form.  This event spans a few days.  If the person filling out the form has an organization membership id, they need to be able to enter that, and membership options need to be enabled for the days they wish to attend.

For example.  The event is Monday and Tuesday.  There is also an "All Days" option.  There will be a Member option for each day, a normal price for each day and a retire price for each day.  Above the checkboxes there will be a text box where they can enter their membership ID.  If that text box is empty I want to disable the membership options.  Currently I can only disable to whole checkbox group.

In addition, if any of the All boxes are checked, the remaining boxes need to be disabled.

Thoughts on how I could do this?  Thanks!!

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

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

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


Anyone want to try programming an extension for the world's easiest sms provider? I would really like to have an extension for the NowSMS provider, and I've been through the documentation and creating an extension with civix, but there is just too much of it that is over my head. Would someone please consider creating one?

In my opinion, NowSMS has the easiest API of all the providers since there is no security or encryption of any kind. It's literally just http in and out with 3 variables, the two phone numbers and the message body.

You don't even need a working NowSMS installation to test it. You can use a browser and a small .htm file and a php script that can receive http get variables. As long as it uses http get and supports the three variables, it will work.

Ideally it would support a customizable url, and the attributes block would include the phone number, like any of the other providers.

For a bit of background, NowSMS runs through a cellphone instead of over the internet, so your only bill is to pay the phone bill. At $30 USD for the phone, the tipping point is 4000 texts per month, where NowSMS becomes more cost effective than Twilio.

Another cool feature is that NowSMS runs an app on Android phone, meaning you can use the cell phone as a cell phone, and then you can log into civicrm and send a bulk message, and you'll see it in the phone's text message app. When people reply, the message will be received by the phone's message app as normal, and it will also be copied and received by civicrm. Someone can be using the phone while someone else is using civicrm to send through the phone in the background.

So how about it, anyone interested in releasing a really easy extension?

Looking at the api it seems to be very simple one to implement. You can do it by using reference from https://github.com/osseed/com.osseed.sms.mysmsmantra


Tracking expenses with Civi Some time ago I saw a post about how one organization was or was considering using Civi to track not only income but to also track expenses (e.g., to track expenses against a campaign so that revenue less expenses would give true campaign net). We are interested in this, so that our board could use Civi to see revenue and expenses and not have to worry about any access to QuickBooks and reduce me having to prepare financials for them from QuickBooks. My thought would be that an expense might be a specific financial type such that a user could exclude that financial type to get revenue only, include it along with other revenue financial types to get the total picture, or include only the expense financial type to see expenses.

All that being said, I have searched high and low and can't find that post. I can't recall if it was from the CiviCRM blogs (again - looked/searched but couldn't find) or some other blog. I also searched here on Stack and couldn't find it. I did find a post about tracking scholarships disbursed (How to manage a scholarship fund?). That helps some, but curious about the entry itself (which was mentioned in the post I can't find).

Anyone recall seeing that post? Or, anyone using Civi to track expenses as well as revenue? If so, I would love to know how you are handling (i.e., how recording in CiviContribute, etc. -- presumably to get net raised as revenue less expenses the expenses must be entered as a negative amount, and whether a "generic" contact was created for payments [i.e., used as the "vendor"]). FWIW, I'm on Civi 4.6.11 and WP, but since this is not CRM specific, this is a more global question and more of a way of thinking out-of-the box on how Civi is setup and typically used.

The post can be found here:
https://civicrm.org/blogs/chrischinchilla/using-civicrm-project-management-and-budgeting

The description how the budgeting/expense tracking is done is quite short and it only mentions that they are using negative contributions for expenses. They are also using CiviCampaign to assign the expenses to "projects".

The poster Chinchilla is describing an implementation on Drupal using drupal-views, if you are using wordpress I am trying to collect recommended plugins here: What is the recommended Wordpress equivalent for drupal-views


Views integration and CiviVolunteer I think I've discovered something broken with CiviVolunteer's views integration, which was only laid bare in the past two civi 4.6 releases (.17 and .18, related to the custom group work).

The symptom is that the views interface now returns "The website encountered an unexpected error. Please try again later." and in the watchdog, I can see this: "CRM_Core_Exception: Invalid Entity Filter for Activity in CRM_Core_BAO_CustomGroup::validateSubTypeByEntity() (line 645 of [...]CRM/Core/BAO/CustomGroup.php)."

Actually, I updated the exception code to include 'Activity'. That part of the code shouldn't be executing except for contact entity types.

Tracing back to how this might have happened - it appears that civivolunteer creates the custom field group that this is breaking on, and it includes a number in the "extends_entity_column_value" of civicrm_custom_group, which I suspect is why this code is executing.

I haven't tried removing this column data, in case it's used in a way I don't understand, but I'm guessing this is the easy solution.

Anyone else have this experience and/or can give me an opinion on my diagnosis?

Whether or not civivolunteer is misbehaving, I've got a pending patch to the views integration that fixes the issue, here: https://issues.civicrm.org/jira/browse/CRM-18776


Attaching file to activity I'm having a problem attaching files to activities.  I've done the basic checks (write permission to directories, Drupal permissions) .  I notice that the file gets placed in the Custom Files folder "[site root]\sites\default\files\civicrm\custom"

However, the process doesn't seem to finish, and the system hangs with the egg timer showing and ultimately i have to escape out of adding the activity, for the system to 'un-freeze'.

I'm feel it's just a small tweak somewhere but i'm getting stupped what the exact issue is, and my searches are not pulling up anything related to this.

Any help would be much appreciated.

UPDATE: when i right click new activity and attach the file i get the following error

  Sorry but we are not able to provide this at the moment. Could not
  move custom file to custom upload directory Uncaught
  CRM_Core_Exception: [0: Transaction integrity error: Expected to find
  active frame thrown in –

UPDATE 2:
 it looks like there is a 500 error;

  Failed to load resource: the server responded with a status of 500
  (Internal Server Error).

this is followed by another errror;

  Failed to clear temp storage: It was determined that certain files are
  unsafe for access within a Web application, or that too many calls are
  being made on file resources. SecurityError –

UPDATE #3
It looks like the ultimate cause of this problem is the issue with relative angular paths in windows CRM-16499.  I'm going to upgrade to 4.6.4 from 4.6.2 as this issues is fixed in the 4.6.4 version.

If it works i'll add an answer

This should be resolved as of 4.6.4 (issue CRM-16499).


Can I disable Notify Activity Assignees for some Activities and/or user levels and leave it on for other Activities/user levels? We're on Civi 4.6.21 and Drupal 7.

Under Administer -> Customize Data and Screens -> Display Settings there is a setting - "Notify Activity Assignees - When enabled, contacts who are assigned activities will automatically receive an email notification with a copy of the activity."  - with a checkbox to enable the setting.

I want to be able to send e-mail notifications based on Activity type, or Activity Subject, or Campaign to which that Activity is linked, or Assigned To contact user level - so, for example, staff who are Assigned an Activity called Membership Signup (of a 'target' contact, the With contact) always receive an e-mail notification; but, volunteers who are Assigned an Activity of Card Signup, with Subject of Protect Puppies as part of a Campaign called Protect Puppies 2016, do not receive an e-mail notification of that Assigned Activity.

Sending e-mail notifications of Assigned Activities is really handy - but not desired in all use cases.

So - how can I disable Notify Activity Assignees for some Activities and/or user levels and leave it on for other Activities/user levels?

Thanks!

The extension mentioned by Peter in the answer is now moved into core and can be used from 4.7.30 version. See https://issues.civicrm.org/jira/browse/CRM-21380

It introduces a new setting which blocks some activity types to send an email to the assignees.

To enable this, navigate to Administer -> Customize Data and Screens -> Display Preferences and select Notify Activity Assignees checkbox. It will then display a multi-select box to choose some activity type which you don't wish to send notifications for.