Content for Custom Tab I'm working on a hook to display a users PCPs on a custom contact tab. We use PCPs extensively and it would be great to see any pages the contact owns inside their contact card. (Rather than having to pull up the full list of PCPs in a separate window. I also know that there's a link to PCPs in the soft credit section of the contribution tab - but that's only if there is a contribution to the page.)

I'm able to make a custom tab (using the tabset hook) but am struggling how to actually get content on to the tab.

// let's add a new "contribution" tab with a different name and put it last
// this is just a demo, in the real world, you would create a url which would
// return an html snippet etc.
$url = CRM_Utils_System::url( 'civicrm/contact/view/contribution',
                              "reset=1&snippet=1&force=1&cid=$contactID" );
// $url should return in 4.4 and prior an HTML snippet e.g. '<div><p>....';
// in 4.5 and higher this needs to be encoded in json. E.g. json_encode(array('content' => <html form snippet as previously provided>));
// or CRM_Core_Page_AJAX::returnJsonResponse($content) where $content is the html code
// in the first cases you need to echo the return and then exit, if you use CRM_Core_Page method you do not need to worry about this.
$tabs[] = array( 'id'    => 'mySupercoolTab',
                 'url'   => $url,
                 'title' => 'Contribution Tab Renamed',
                 'weight' => 300 );

But I don't know what to set my own url to AND get content on it. I'm in Wordpress 4.3.1 and Civi 4.6.4. Suggestions?

The custom tab contains whatever's at the URL in the url parameter.  You can test it out by simply linking to another page on your site.

Once you've confirmed that's working, you should generate a page with civix generate:page, and you can replace the url in your tab with that new page's URL.


Recurring payments URL for Vanco payment processor Could someone provide an explanation (with an example) for the recurring payments URL field found on the Add Payment Processor form when using Vanco Payment Processor? It is my understanding it is used for processing the Instant Payment Notification (IPN), a message service that notifies you of events related to your payment transactions.

Mike,  that URL is not needed. Just complete the top 4 lines (userID, password, site URL, API URL)

You do need to send Vanco the URL of the VancoHistory.php file so that they can send recurring notifications on that URL.

Hope this helps


What's the Status of CiviVolunteer 2.0's Compatibility with CiviCRM 4.7 on Wordpress I'm looking for an update on the status of CiviVolunteer 2.0 compatibility in WordPress with the latest version of CiviCRM. I'm developing a volunteer intake process and we've been stalling hoping to take advantage of the new features found in CiviVolunteer 2.0. I'm running CiviCRM 4.7.6 and an older version of CiviVolunteer (version 4.5-1.4.1) because CiviVolunteer 2.0 is not considered compatible with 4.7 and above. My understanding was that there was a blocking issue that was preventing full compatibility, but I also seem to recall hearing that you could try your luck using CiviVolunteer 2.0 and CiviCRM 4.7 together by changing the version strings before installing it.

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


Why aren't donation receipts being emailed to customer? I'm having issues with emails being sent for new donations (membership signups actually).

I've tested each mail server type and I can send bulk emails, and test emails.
I'm using PayPal as my processor and that seems to be working fine.

My contributions are being marked complete, and new contact/memberships are being created. It seems the only problem is the member isn't getting sent a receipt email.

I noticed this q: Online receipt not being send to donors
which sounds similar but I think I've tested that it isn't a paypal problem.

When I tell the system to store the emails in the db, no email is being created, telling me the issue is within CiviCRM.

Any ideas?  Much appreciated.

This seems to be a known, critical, and unresolved bug with WordPress and PayPal since 4.5.4. It has been reported as issue 16181, Email reciepts for contributions being marked as sent but are not sending, and therein is noted as related or a duplicate to 15629, Paypal IPN not working on Wordpress the first time, which is also referenced in the other Civi.SE question.

Kurund suggests testing patch 5647 to see if it resolves the problem.

Update: Both Issue 15629 and Issue 16181 are marked as resolved as of 4.6.3.


Settings values not showing up. Cache issue? I am experiencing a strange issue with my CiviCRM (4.7.3) installation on Joomla (3.4.8) with MySQLi 5.6.28-76.1-log and PHP 5.6.18.

If I change some of the settings in one of the administration pages, they are correctly updated on the database, but if I get back to that page I don't see the setting anymore. It seems like values for the settings pages are not retrieved correctly from the database.

It's seems like a cache problem, but I've tried to clean the followings to not avail:
- browser cache (tried different browsers as well)
- joomla cache
- siteground supercacher

Problem still there. Any ideas?

First screenshot is from a working CiviCRM installation (http://sandbox.joomla.civicrm.org/). If you check any of the settings pages (ie. Administer > Localization > Languages, Currency, Locations) you can see that the options have values according to what is in the database. Radio buttons are correctly valorised. If you change the option, save and get back to the page you can see the option you choose. This is the normal behaviour.

Second screenshot is from our CiviCRM installation (http://omphalospg.org/). If you check any of the settings pages (ie. Administer > Localization > Languages, Currency, Locations) you can see that some of the options don’t have values according to what is in the database. Radio buttons in particular are not correctly valorised. If you change the option, save and get back to the page you cannot see the option you choose, even though the option is correctly saved in the database. This is not a correct behaviour.

I reviewed the problem carefully and found that it is caused by the jSGCache plugin that comes preinstalled on all Joomla sites installed via Softaculous. When the plugin is enabled, it adds a special cookie to to prevent caching the admin panel. This seems to conflict with CiviCRM and results in the problem you reported.


cannot access /wp-admin/options-general.php?page=civicrm-install after installing 5.28.3 I have found it impossible to upgrade from CiviCRM 5.25 to 5.28 to get around the breakage caused by the WP upgrade from 5.4 to 5.5
My attempted solution has been to make a staging site, completely remove civiCRM and reinstall using the 5.28.3 zip file.
All seems to go well including adding the UK i10n files until I go to
/wp-admin/options-general.php?page=civicrm-install
Where I get the message Sorry, you are not allowed to access this page.
As the only admin on the site, I find this strange.   Any hints?

Is CiviCRM already installed?
Even if the DB is clean, does the wp-content/uploads/civicrm folder exist with the civicrm.settings.php file in it.  The installer does not expect that to be there.
You shouldn't hit the install page on an upgrade.  I'd expect you to go to http://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/upgrade&reset=1
Full docs are at https://docs.civicrm.org/sysadmin/en/latest/upgrade/wordpress/


Shared email address (parent/child) One of the organisations I'm supporting has an issue with the email address fields...

They have a record for a child, and another for the child's parent(s). When it comes to sending emails they will 99% of the time be wanting to send emails to the parent, but aren't keen on having to click he relationship field to open parents record in order to get the email address.

Is there a way to share this, similar to that for postal address, or any other clever ideas to help with this?

Parent's emails should be visible from the child's "Relationships" tab without actually clicking through to the parent.
Alternatively, the Relationship Block extension allows you to put the parent's info on the summary screen.  Not ideal, but it saves you a click.

After that, I think you're looking at commissioning an extension, or a modification to an existing one.  It probably wouldn't be hard to include a clickable email address via the Relationship Block extension.  Doing a "shared email" extension is pretty doable these days also, due to some under-the-hood improvements in CiviCRM 5.


Renewal Link Results In Too Many Redirects Error I'm trying to setup membership renewals for an organisation I've just migrated over to CiviCRM, all of the membership details seem to have been imported correctly (dates and details show correctly). All memberships expired on 31.12.16.

I am trying to setup the renewal emails and have emailed a dummy run to myself via my membership record. Having reviewed the guidance at https://docs.civicrm.org/user/en/master/membership/renewals/ I have set the URL in the emails to

  my.org/joomla/index.php?option=com_civicrm&task=civicrm/contribute/transact&reset=1&id=N&{contact.checksum}&cid={contact.contact_id}

When the link comes through on the emails it is populated correctly with the checksum and ID but when I click on it I get a too many redirects error.

I've found something strange in that if the link is clicked as is  - eg.

  my.org/joomla/index.php?option=com_civicrm&task=civicrm/contribute/transact&reset=1&id=N&{contact.checksum}&cid={contact.contact_id}

(obviously populated with info) I get an error. However, if I set the URL to

  my.org/joomla/index.php?option=com_civicrm&task=civicrm/contribute/transact**?**reset=1&id=N&{contact.checksum}&cid={contact.contact_id}

, I initially get a page not found error, if I then change the ? symbol back to an & symbol the renewal page all completely filled in as it should be appears.

Does anyone know what's going on, I can't ask my members to renew using an incorrect link that requires manual modification.

I have replicated this error both in Chrome and Safari. I am using Joomla version 3.6.5. I am using CiviCRM version 4.7.14.

Please help!

"Too many redirects" is almost always caused by URL rewrites.  Your web server software (e.g. Apache, nginx) handles URL rewrites, so it's most likely that your problem lies in the configuration of that software, not CiviCRM.  To my knowledge, CiviCRM doesn't generate a redirect on any links other than click-through links.

To resolve this, I would take the following two steps:

Press "F12" to open your Developer Tools (in Chrome or Firefox; Safari's are lacking).  Go to the "Network" tab.
Trigger the "too many redirects" error.  You should see a bunch of network requests.  Note the URL, and look for any patterns.  A common pattern is:

http://my.org/civicrm/

http://my.org/civicrm/civicrm

http://my.org/civicrm/civicrm/civicrm

etc.

Find the "rewrites" section of your web server configuration.  Look for the pattern that matches the URLs you found on your Network tab.  Tweak that rewrite rule and restart your web server software.


Custom fields in tabs are not editable since upgrade to 4.7.1 After upgrading to 4.7.1, when trying to edit custom fields in tabs, the edit popup opens and you can enter data (and it does client-side validation) but the data is not saved.

Moving the set of custom fields to inline rather than tab is a successful workaround.

I couldn't reproduce it on demo, but I could on my dev site which has no extensions in common so I think it is unlikely to be due to an extension. I noticed demo is running 4.7.2 ... is this issue known to be fixed in 4.7.2? If so I'll just wait for the release and work around in the meantime.

This turned out to be a bug in said version and is now fixed.


How to remove 'Volunteers' menu option where it's not appropriate? I want users who have no access to CiviVolunteer functions to not have this menu option available to them.  However the 'Volunteers' menu doesn't appear in the 'Navigation Menu' in the 'Administer' option, so can't be modified.  Is there some other way of achieving this?  Civi 4.7.24 and CiviVolunteer 2.2.2

Not entirely sure, yet if menu comes from CiviVolunteer 2.2.2 extension, perhaps an extra permission check should be added here:
https://github.com/civicrm/org.civicrm.volunteer/blob/59534288f37c96202434c57adc73d2fa5dc7ba55/volunteer.php#L46


Directory not replaced with site name? At some point ckeditor broke for us.  Developer tools show me it is not loading because :

Common.js?ol145e:249 GET https://home/NAMEREMOVED/www/www/sites/all/modules/civicrm/js/wysiwyg/crm.ckeditor.js net::ERR_NAME_NOT_RESOLVED

I can't seem to find the appropriate place to fix this.  As I usually don't poke around the guts.

Everything else seems to be loading appropriately from the domain instead, i.e. https://domain.name/sites/all/modules/etc.....

Any thoughts?  We haven't migrated the server just updated it.

CiviCRM version 4.7.16 is up-to-date.  We are on Drupal 7.54?  I have shell access and can edit files.

I just found and fixed the same problem. There are two possible fixes to this problem, only one of which is available to you immediately.  As per usual, Chris nails it.

In your civicrm.settings.php file, there's a line $civicrm_root = /path/to/civicrm.  If you have a symlink in that path, then the [civicrm.root] is miscalculated.  So the easy fix is to fix your $civicrm_root to the non-symlink path to the file.

The longer-term fix is this line:
CRM/Core/Resources.php:          'wysisygScriptLocation' => Civi::paths()->getUrl("[civicrm.root]/js/wysiwyg/crm.ckeditor.js"),

This shouldn't call civicrm.root, it should use the resource URL.  I'll try and post a bug report (and maybe even a fix!) if I find a moment - but first, like you, I need to get my mailing out :)


"view contact" not updating when changes are made I do all my backend entry for CiviCRM on my "View Contact" page, but nothing I do is visible for about a day and it is causing a lot of stress for my staff.

If we go to the Membership tab and add a new membership, it will save, but it won't show up on the Membership tab until the next day. I've tried cleaning my cache in Joomla, and setting a rule to bypass admin for caching, but no luck!

Has anyone encountered this probelm?

Band-aid solution:

Found out that it was our web-browser's cache that was causing this problem, both in Chrome and Firefox. Chrome offers no way to turn caching off (except in development mode), so I installed a plugin to clear the cache anytime I need to confirm updated information.

I'm surprised others haven't posted about this problem since it must be fairly wide-spread


How to fake a 'deny' ACL Has anyone ever tried to deny access to a group of custom fields, for particular roles/users? We have a custom-data tab that we'd like only particular roles to see. I know there's no 'deny' ACL, but I'm wondering if it can be faked through hooks.

I figure I can hide the tab using hook_civicrm_tabs, and kill any exports using
hook_civicrm_export. Would there be much more to it than that? Or is this just entirely impractical, as there'll always be some way around it?

I appreciate we could flip it all around and start with a more restrictive set of permissions. Then create ACLs that allow access. But we have a lot of custom fields and a lot of different roles - so this would be a pretty big admin burden. And we only rarely need to deny anything.

EDIT: we're on WordPress, which doesn't have a 'deny' ACL available.

It should be possible in WordPress also. WP + Civi has the same capabilities as drupal and joomla.

Deny ACLs are not part of the UI. You can implement them via a hook. Check:

https://civicrm.org/blog/lobo/implementing-a-custom-acl-system-in-civicrm

(search for VIP contacts)


My contacts aren't showing anymore I have a big issue with my contacts. My database contains all of the correct information. I have checked it all in phpMyAdmin. Out of no where, when I search for contacts in Civi, it comes up with 0 contacts. It's like they all got deleted automatically. Please help!!

Have you enabled "Contact Trash and Undelete" for your site?  If so, have you tried searching in Trash for contacts? Do an Advanced search and tick the "Search in Trash" box. It will be on the right side of the Basic Criteris search pane.  Exactly where depends on what version of CiviCRM you are using - which is why I have asked for that information.

Do you have logging enabled? Can you look in the log_civicrm_contacts to see who made the last change to the contacts and when and what it was.

"Out of no where" sounds improbable.

What has been changed on your system since you last could "see" the contacts. (Added an extension for your CMS?, upgraded?, your host changed something?)


Webform CiviCRM Event Confirmation Email Not Sending CiviCRM 4.7.30, current Webform CiviCRM 7.x-4.19

When 'Send Confirmation Email' = Yes on the CiviEvent, filled out. When the user submits Webform CiviCRM, the event participant is registered successfully but no confirmation email is sent. I reverted the CiviCRM email template for Event Online Registration to default, to rule that out.

Workaround - we made the email send from Webform, but this is a bad workflow for staff who just wants to make CiviEvents.

Does anyone else have this issue?

You must also enable Thank you and Receipting in the CiviCRM Configuration for the Contribution Page associated with the webform;


Is it possible to allow people to submit their own events to CiviCRM? I would like to create a website that collates events from several organisations.

The site should allow each organisation to submit their own events.  However the submitter should not have full access to CiviCRM.  In particular they shouldn't be able to see or modify events submitted by other organisations. (They don't necessarily need to be able to access or modify their own events, though it would be helpful if they could.)

The events need to go through a moderation process so that an administrator must approve each event before it goes live.  Once the event is live it would be displayed publicly with events from other organisations.  Visitors to the website would be able to view events from all organisations and book a place on any that they wish.

Is it possible to do this using CiviCRM?  If so, how would you suggest that I go about this?  Could webform be used for this?

Thanks for your help.

I am not going to be able to discuss a full recipe here :-) But yes, I would think it is feasible and I would certainly use Webform for this. I could imagine a situation where you have one Drupal frontend feeding into more CiviCRM installs, where each organisation would have its own CiviCRM database? If the organisations do not need to share any contacts that might in fact be the easied solution? You keep track of the organizations in either Drupal or a CiviCRM install, with the settings that their CiviCRM installation requires? Interesting project!


I am a bit lost on CiviCRM's functionality A friend of mine recommended CiviCRM to me as I am looking for a simple solution that helps me create an online platform able to inspire, initiate, facilitate and implement social bottom-up change.

I am looking fo a space that allows me to create a community in which every member is able to initiate their own projects, connect with members, invite members to join projects, create events etc.

I was trying to check out the demo of the system but could not enter and only got an error. Is there a chance to maybe find a introduction video, a different link to a demo or somebody who could maybe explain better to me what the system you have can do and how I could use it for the creation of the platform?

tl;dr: start by reading the book :)

I think the most important thing for you to know at this point is that Civi is a tool not a complete solution. You'll get out of it what you put into it.

It's certainly possible to do those things by combining CiviCRM with other tools (namely Drupal or Wordpress + plug-ins), and if you do your homework and put in the time to craft the final product it could be perfect. Or if you don't, it could be a mess.

Here's an analogy to your requirement:

  I want to purchase a blender that can make healthy, delicious smoothies full of organic fruit, yoghurt or non-dairy milk (depending on the user's preference) and supplemental protein and/or vegetable powders. I want to be able to serve these beverages in tall, ice cold glasses to about a dozen friends on a weekly basis.

Well, if you know what you're doing, get the right ingredients, assemble it correctly (important: put the lid on!), and combine the final product with the right serving containers, yes your blender can do that (although one might argue that you are making the smoothies, not the blender). If you don't, it'll probably just make a mess all over your kitchen floor and ceiling.

But I digress about blenders. From your description it sounds like you are wanting to build a basic social networking site. CiviCRM doesn't do that at all. But if you use Drupal or WP to build a site with the social networking features you need, plugging CiviCRM into it can give you some additional features like mailing lists, fundraising tools, paid membership management, among others. If you don't need those things and just want a basic social networking site, then you probably don't need CiviCRM.


Having trouble changing settings on Donations Page I need to change a checkbox on the Donations page to a box where people can put their own dollar amount in and it will be added to the total at the bottom of the screen. I cannot locate where to go to make that change.

On Amount tab of contribution page (Contributions menu > Manage Contribution Pages, then click Configure next to the page in question) you can either choose price set or other amount section to have text field where people can input there own amount.
See :
https://docs.civicrm.org/user/en/latest/contributions/online-contributions/#amounts-tab
https://docs.civicrm.org/user/en/latest/events/complex-event-fees/#price-sets
Price set:
You can create a price set as text field with amount set to 1 and include the price set in contribution page
OR
Other amount:
On amount tab of contribution page you can choose other amount option and choose if you want donor to donate minimum to maximum X amount.(can leave blank if dont need the restriction)


How to bootstrap CiviCRM with admin permissions in a Wordpress environment? I'm using eval cv php:boot in a script. I need to be able to delete a contact in the script, including the skip_undelete flag, but this action is denied - get a "could not delete contact" error.

I learnt that in Drupal this happens when you're bootstrapped but not as the admin user, but I'm unfamiliar with what Wordpress's equivalent would be, and whether it's possible to do this using cv?

Thanks.

PS. I'm writing a phpunit test (not a unit test) for a wordpress integration plugin (not a CiviCRM extension) that makes various API calls. I am running this against a real world database, not a buildkit one, so it's not appropriate to use the extension-style phpunit tests which start by tearing out your data :-)

If wp-cli is an option, it takes a --user option, similarly to drush.

If that's not an option, looking at the wp-cli source code (here) suggests that wp_set_current_user() will do the trick.


CiviEvent not registering via backend Just updated to Civi 4.7.22, running WP 4.8, [edited] now running php7.0 [/edit] php 5.5.26

After the upgrade CiviEvent will no longer register contacts for events via the backend. After filling out the details and pressing the ok button, everything greys out - I get a 'processing' but nothing happens.

The green CiviCRM logo isn't turning, the page tab isn't updating, nothing. If I move away from the page I get a warning that things aren't saved (which is correct) but even after 5min it hasn't completed.

I'm about to roll back to CiviCRM4.7.17 which will throw a load of security complaints but at least folks will be able to register for events.

Any thoughts before I roll back?
[added]With payment recording unchecked

Seems like the issue was resolved in the latest 4.7.23 release.


how to add "registered by" information to a guest that is being registered manually in the backend? because of my workaround for this issue I occasionally need to add event participants with the role of "guest" via the admin backend.  That's ok, but when I register a guest this way I'm not able to specify the "registered by" data that gets added automatically when an Attendee registers himself and multiple others using the frontend registration form.  I'd like to have this info because I need to know which participant the guest belongs to.

I've been putting the name of the main Attendee into the "Participant Source" field just to capture the data, but this of course doesn't show up in the "Registered by" columns in reports.

Is there a hook I could use to copy that Participant Source field into the "registered by" field?  Or am I missing a simpler solution?

Thanks! This is a Joomla 3.9.13 system with CiviCRM 5.18.2.

Looking at the table "civicrm_participant", I can see a field "registered_by_id", which is presumably the one you want.

I'd note that you're using the field in a way that isn't strictly what it was designed for - i.e. you're taking the person who registers someone else and using that as having a particular relationship to them.

So I can think of three solutions:

Reconsider your requirements/architecture - perhaps add a relationship or some other way of connecting the guest to the primary registrant.
Use an indirect way of filling the registered_by_id field, e.g. have  custom registrant/participant field that is only exposed to administrators, and use rules or something like that to fill in registered_by_id when this custom field is filled.
Write an extension that exposes the field to the administrative form.

Short answer: no (no simpler solution).


symlink at sites/all/modules/civicrm doesn't work I am used to put all my development stuff (not only civicrm) at a certain point on my linux machine, therefore I use symlink from

<drupal base>/sites/all/module/civicrm to /my/devel/path/civicrm

This has the benefit of pointing the link to a newer version of civicrm as a means of upgrade or testing new developments.

This doesn't work when I change the symlink to point to another version of my development.
The instructions regarding upgrade civicrm (for example to 4.6) won't be helpful here because they talk about replacing the files locally.

Do you think the way I work is not logical?

thanks

It's how I do it, it works fine.

So you have (outside of the drupal folder) several folders civicrm-4.5.4 civicrm-4.6.2 ...

and (within the sites/all/modules create a single symlink civicrm -> the later civicrm-4.6.2)

The name doesn't matter, but as you will have urls that use it, I recommend keeping civicrm as the name of the symlink, and only keep a single one that you symlink with the civicrm version you want

then you upgrade normally using civicrm/upgrade and voila


WordPress: Creating new WP Users from Civi Contacts I've seen some example posts here for other CMS', but I haven't seen it explained for a WordPress environment. My situation is I have an Individual DB of 2,500 Contacts in Civi, and I want to turn them all into WP Users. I know I can convert Users into Contacts, but I want to do it the other way around.

Only thing I can think of is I would have to export the Contacts database as a CSV and then import them as Users either with a plugin or PHPmyAdmin. Isn't there some other way?

You can use my CiviCRM WordPress Profile Sync plugin to do this, but I can't guarantee that it'll do them all in one go! You'd have to install the plugin, then set a PHP constant in the main plugin file (because it's a feature only really intended for developers at this stage) to enable this feature. Change line 22 to read:

define( 'CIVICRM_WP_PROFILE_SYNC_BULK', true );

EDIT: Better yet, add the above line to your wp-config.php file - then you won't have to re-edit the plugin after each update.

You will then be able to select contacts in CiviCRM and use the Bulk Operations menu to "Create WordPress Users from Contacts". I'd recommend limiting the number of contacts you migrate in each run. And that you backup before you try this.

Did I mention that you should backup before trying this? Oh, good!


Which accounting software is compatible? I was wondering what accounting packages, if any are compatable with CiviCRM.  I'm in Australia also if that helps.

There is a batch export in csv that works for many packages, a .iif that works for QuickBooks desktop, an extension that integrates with QuickBooks online Australia, and an extension that supports Microsoft Dynamics.


Does Google Hangouts SMS integrate with CiviCRM? SMS seems to be hit and miss at the moment, with Twillo and Clickatell as the only choices. Since Google Hangouts can be used for SMS, is there a way to use that service, assuming the other two don't measure up? Is there anyone working on this, with an extension in anything resembling usable shape? What would it take, if nothing exists, to create something that uses Hangouts?

I have never seen this coming up for discussion and suspect the answer to that part of your question is 'no'. In terms of 'where to start', it would be worth looking at the two extensions Clickatell and Twilio but i suspect you have already looked at them.

Third option is to engage the services of a Professional or use the core teams Paid Issue Queue


How does last authorize.net changes refer to CiviCRM Lately I have received email stating that a few things are changing in Authorize.net payment. Among a few items (changing urls, longer ids, tls 1.1 force etc) one is:

  RC4 Cipher Disablement
  In an effort to ensure that all of your server-to-server communications with the Authorize.Net platform (both
  transactional and otherwise) maintain the highest levels of security,
  we will be disabling the RC4 cipher suite during the first half of
  2016. A follow-up notification will be sent out once specific dates for the disablement are ready for the sandbox and production
  environments.

  For now, if you have a solution that relies on RC4 to communicate with
  our servers, please update it to a current, high-security cipher as
  soon as possible. Please review our API best practices blog post for
  more information.

I haven't been able to find anything mentioning rc4 in civicrm authorize.net payment processor. Does anyone know if this relates to CiviCRM?

From my understanding, this has a lot more to do with your web server and the cypher suites that are configured than it does with CiviCRM directly.  SSLLabs has a great page on getting all of that set up.

https://www.ssllabs.com/index.html


civiCRM tab is not showing on top right corner of content? I want a civiCRM tab on content of drupal.
 I install drupal 7 and civicrm 4.7.

You will need to install and enable webform civicrm module to integrate civicrm fields with webform.

HTH

Pradeep


Custom fields of type select not displaying in Activity Report A site I'm working on has recently been upgraded to version 4.6.32.  Since this upgrade the client is no longer able to see data from some of the custom fields in the Activity Report.

Custom fields of type 'text' display fine, but fields of type 'select' are blank even though there is data stored in this field.

The site is running CiviCRM 4.6.32 on Drupal 7.

This appears to be a regression in CiviCRM 4.6.32.  (It doesn't appear to affect CiviCRM 4.7.28.)

I have recreated this on the sandbox site.

I have raised this as a bug in the CiviCRM issue queue:

Custom fields of type select not displaying in Activity Report

UPDATE

It was subsequently raised as a bug by Martin Castle:

Custom data fails to pull through to reports

And a fix has been released by VangelisP:

Resolves regression issue with non-dynamic custom fields

This will hopefully be included in a future release of CiviCRM 4.6


Cannot properly configure PayPal Sandbox I'm attempting to enable PayPal as a payment provider on our website and test some transactions, however I cannot get the PayPal sandbox to work. I configure the sandbox with the correct URL:

https://sandbox.paypal.com/

However, when I go back in to the payment process to verify the settings, it has always reverted back to the same as production:

https://www.paypal.com/

Why can't I get CiviCRM to keep the sandbox settings?

I think you've found a bug. I just confirmed that if on 4.7.8 - you have - under Processor Details for Test Payments:

And then hit Save = you end up with [for the very same Processor Details for Test Payments]:

Go ahead and file this on JIRA: http://issues.civicrm.org - not sure why those settings are not retained. They certainly used to be completely functional.

In the mean time I'd recommend run some Live Tests - with real easy to spot $ ($1.11, $2.22 etc).


Why does the price set field title change the CSS class? For instance, if my price field is called Main Conference (Before 7/31), the CSS class it gets is: "main_conference_before_7_31_-content"

If I change the title of the price set, the CSS class changes.

When modifying the form with jQuery, we rely on the CSS class to make adjustments like .prependTo (etc.). Perhaps this is not the most ideal way to do it, but it's worked in a pinch.

How difficult would it be to make an extension to make the price set field class fixed, or even user-adjustable? Or, to set a class and ID for each one?

Civi 4.7 or 5.x

CiviCRM uses civicrm_price_set.name to generate class. I believe this field in never updated on Update mode. It is updated when we explicitly set them using api or mysql query.


flexible membership billing I have a series of different memberships in CiviCRM, currently with yearly billing for each. Each membership is currently set to auto renew.

The client has requested that a client might pay for these memberships monthly, or quarterly or yearly. I've looked to change the membership to a monthly membership, and using pricesets, enable 3 and 12 months as number of terms.

Unfortunately, as the membership is set to auto renew:
"You can include auto-renew membership choices for only one price field in a price set. Another field in this set already contains one or more auto-renew membership options."

The auto renew functionality has been turned on, as the memberships are set to continually renew but not use a payment processor. The records are being exported to another system, which generates the invoices.

Do I need to create monthly, quarterly and yearly options for each membership? Is there a better way to create the one membership, but have flexible pricing options which keep renewing after every period.

Since posting this question I found there is a bug in 4.6 and 4.7 of CiviCRM where you can't create a membership with auto renew in a price set - no matter what - not even one. This should be resolved in 4.7.5 (with about two lines of code). This allows you to keep a single membership and have different renewal periods at the same time.. and keep the reporting simplified, so the membership reporting will continue to show one membership.

https://issues.civicrm.org/jira/browse/CRM-18050
//If price set field is already present with auto-renew option then, it will restrict for adding another price set field with auto-renew option.
if ($dao->N == 0)
{ return 0; }

The easiest way is to create three membership one for monthly, Quarterly and yearly which will solve the problem

If you need all the frequency in a single membership then you have to handle this by creating a custom field linked with membership which will hold the frequency value and whenever we create a membership or renew a membership you should calculate the end date of the membership based on the frequency using hooks and update the membership record manually - that should solve the problem - I guess this helps!


View With CiviCRM Line Items I am trying to use Views to create a report to easily filter by an event and then see the specific line items for a registration. I cannot find a way to list the line items for a specific contribution.

I have tried Views as well as CiviCRM Entity but I have not been able to figure this out.

Any ideas on how to do this are greatly appreciated.

Thanks,
Steve

The Extended Reports extension includes Priceset Reports. It works great for our org to see reports with LineItem info.

https://civicrm.org/extensions/extended-reports


Wordpress Media Library not refreshing with new upload when we upload a file to the Media Library at
https://OurSite.org/wp-admin/upload.php the file doesn't show up onscreen immediately. It looks like nothing has happened. But when we refresh the browser, the file appears.

We thought perhaps this was a SiteGround caching issue, so added wp-admin/ to the exclusion list and used the Supercacher testing tool to confirm that
https://OurSite.org/wp-admin/upload.php was now excluded.

We also purged the SiteGround cache, but still the Media Library does not dynamically refresh when uploading a file. Wordpress version is 4.7.2 and CiviCRM version is 4.7.13

We have the same Wordpress version installed on a different host and it is working properly. We confirmed that it is caused by CiviCRM when we disabled the CiviCRM wordpress plugin. We looked for possible collisions of libraries, but it is not evident why CiviCRM is affecting any of the output on that page.  We're looking for insights from someone with additional Wordpress expertise.

Not quite a complete answer yet, but I had the same problem with SiteGround and it is to do with file permissions. See Adding images in CKEditor for what I changed.

Also see my recent question file permissions with hosted wordpress about the wider issue.


How to set up 'renewal reminders' 5 days after renewal, and filter by a group I want to send a note to users that renewed their membership. I want to limit that note to only a certain group of members. I thought I would use 'renewal reminders'.

In a renewal reminder, if I choose 'membership' as the entity, there is no trigger for 'renewal date', only for 'start date' and 'end date'.

But if I choose 'activity: membership renewal: completed', I can not limit the recipients (presumably the targets of the activity) to a certain group. There's just no such option.

Any suggestions on how I could do this ?

To clarify: We have several groups of members, and I want to send each renewing member a thank you note specific to his/her group

I spent some time looking through the source code and the history of this feature.  After review, I think you're best off trying to implement this via CiviRules instead.

Your CiviRules trigger should be "Activity added", not membership-related.  Otherwise you run into similar limitations as the Scheduled Reminders approach.
Your conditions can be "Activity is of type: Membership Renewal" and "Contact is in Group: X".
You'll also need to install the Email API extension so you can add an action of "Send Email".


Using login data to skip over search I have set up a bunch of my contacts with a group of custom fields that can have multiple entries.
I set up a profile to list out these custom fields, however, it is asking me to enter search criteria before listing the entries.  I would like it to automatically use the logged in users information to search on it and display only their entries - how can I do this?

TIA
Norm

To close this out, I have actually written a custom PHP script to do this for me in a nice table format. I inject the PHP using a wordpress plugin call XYZ PHP Code and it works great.

you can get the script here: http://txt.do/d01fm


create webform that allows user to create either 1, 2 or 3 activities depending on user selection I've created a drupal web-form that creates a household and 3 activities (each an activity type "referral" assigned to different department).  I've also created conditional formatting to only show the activity details activity details for referrals to the departments that have been selected.  So far so good.

The problem i'm facing is that there are always 3 activities created.
If, for example the user selects only that a new household should only have a referral only to departments 2 & 3 (ie. not to dept 1), i only want to create 2 activities, but 3 activities are created.

I think this is because in the webform-civicrm tab i've created three activities with the household members assigned.  Is there a way to have a variable number of activities created?

You can accomplish this by:

For each activity, make the Activity Type field "user select".
Edit those 3 Activity Type fields on the webform. For each one:

Deselect "list box"
Deselect all activity types except the one you want.
Rename that option to something like "Create activity"

Add a conditional rule on the form showing/hiding other activity fields depending on the Activity Type field being checked.

This will present a checkbox on the form allowing users to select whether or not they will create each activity.

Note: This works in the current version of webform_civicrm but logs an error saying "could not create activity." I've fixed that superfluous error report in -dev (as well as fixing a bug where it could not save activity details) so you may want to upgrade to the -dev version until the next release.


How do I upload mailing content in 4.6? I love the new Civi mail enhancements in 4.6 but just wondering what happened to the "upload content" button. Is it still possible to upload mailing content from a file?

In the HTML rich text editor, there is a button called "Source". You can use this to send custom HTML:

In a text editor (e.g. Notepad), open the desired file. Copy all the markup.
In the CiviMail UI, click "Source". Paste the markup.


Optional year on Date of Birth demographics field: is it possible? Some folks would like to enter their birth date but would prefer not to divulge the year they were born as it reveals their age ;)

Looks like the Date of Birth field has validation that requires year. What are my options for making year optional?

This question led me to re-investigate a 'feature' that was added quite a few years back to allow sites to set different date formats for categories of date fields. In 4.6, you access this via Administer > Customize > Date Preferences. There is a 'category' for Birth Date which "should" allow you to select alternative formats including mm/dd OR yyyy.

Unfortunately, testing in 4.4, 4.5, and 4.6 shows that there's a long-standing regression for this functionality (which I guess was rarely used). The Birth Date input field 'appears' to accept dates in the alternate format, but they aren't saved properly in any of the current versions.

Pretty sure fixing this will involve mods to the schema, processing code and the date input widget - so non-trivial. If someone is interested in working on a fix for 4.7 - patches definitely welcome.


How to increase the size of a Note field type? Does the 'Note' custom field type have a limitation of 12000 characters? If so how can I increase its limit to three fold or four fold?

you can update the field type from text to longtext
ALTER TABLE `civicrm_value_table_name` MODIFY `field_name` LONGTEXT DEFAULT NULL;


What to do about "File 'Array' presents a security risk and should be deleted." on 4.7? After some brief difficulty upgrading from Civi 4.6.x to 4.7.0, we managed to get it done, with one small hiccup.  Post-installation, we got a notification saying:

File 'Array' presents a security risk and should be deleted.

I looked in our CiviCRM directory, and found 2 files called "Array.php" I tried temporarily relocating both of those files, but no luck; the error still displayed.  Any leads as to how to resolve this issue would help--it makes me uncomfortable to have the system status as "Critical."

Thanks!

CiviCRM is not warning you about a file named Array.php, the confusing error message is because it's rendering a PHP array to a text string.

I've opened an issue in JIRA about this and submitted a suggested quick fix:

CRM-17909: File 'Array' presents a security risk and should be deleted.

It looks like the fix is as simple as adding [0] as shown in this Github commit.

If you can test the fix from that issue on your site, and confirm that the error message shows a more helpful result when you've done so, that will help us get the fix into the next 4.7.x release.


4.6.9 upgrade fails - DB_Error:already exists -5 I've attached a screenshot of the error I get when trying to upgrade from 4.6.8 to 4.6.9

I have the rest of the trace, but not sure if I should post all of it.

Thanks in advance for your help.

Have you taken an Backup before upgrading - if so, please check the old DB civicrm_country table and verify that you have "Saint Barthelemy" country do exist or not - If it has then do delete it and run the upgrade again


hide select box options in contributed page I am currently trying to edit : sites/default/files/civicrm/templates_c/CRM/Contribute/Form/Contribution/Main.tpl

to try and alter when select box A of pricesets are chosen then hide an option in select box B, as I understand civi used a different kind of jquery select box is there anyway I can hide it so that the options do not come available as I already hide the original   part but its still available

thank you

First - don't edit anything in the templates_c directory!  These are cached pre-compiled copies of the template, and are frequently cleared out.

Second - it's not advisable to edit the templates that ship with CiviCRM directly, because you'll have to apply your changes on every upgrade.

The best practice is to install civix and create an extension, but in your case, I don't see the harm of using a template override, and more specifically a ".extra.tpl" file.

This wiki page has all the information you need.  I would start by just creating a "custom templates" directory, and make sure you can successfully implement your change with a normal template override.  Then remove your override and reimplement using a .extra.tpl file, and your change should be OK through most upgrades.


Inline styles in Mosaico Is it possible to use inline css in Mosaico? I tried it, but it was taken out. It works in Civimail. Thanks. I have been trying to get this working for a while.

I can add inline styles by opening the source code of any text in a block and add in HTML tags with style="" and it works. Are you trying something else? or have I misunderstood your question?


Adding a Financial Account to a Contribution I've imported a bunch of Financial Accounts using the CSV importer. There are no associated Financial Types created (should there be?) so I am not sure how to link a new Contribution to the relevant Financial Account. Can anyone give me a pointer?

As far as I know:
You do need to link the Financial Accounts to the Financial Type, and create more financial types if you need them. When you enter a contribution you can select the financial type, which will then provide the link to the Financial Account.


How to enable CiviDiscount for members? I'm considering using CiviMember and CiviDiscount to offer discounts to members... but when I try to create a new discount code, there is no member option.  How can I enable this feature?

CiviDiscount is smart ... and will only display the membership option if you have created at least one membership type.

So...

Create your membership (Administer -> CiviMember -> Membership Types)
Create your discount

Note that your discounts can apply to more than one membership!


API 'match' => "external_identifier" I am writing a script that updates contacts from an external source when their external identifier is equal to the contact being imported.  My research shows (and the API explorer confirms) that it should look like this:

'options' => ['match' => "external_identifier"],

I get the error  "CiviCRM_API3_Exception: Ambiguous match criteria in civicrm_api3() (line 45 of /var/www/html/sites/all/modules/civicrm/api/api.php)."

Can anyone suggest a solution for what I am doing wrong?

Thanks,
Josh

You need to implement something like below

$result = civicrm_api3('Contact', 'create', [
  'first_name' => "first name",
  'last_name' => "last name",
  'email' => "pradeep@test.com",
  'external_identifier' => "S-123456",
  'options' => ['match' => "external_identifier"],
]);

Make sure you pass external_identifier in api params.

So basically above code snippet will first check if external_identifier "S-123456" is present in database and get its id if present and update the contact, if not present then new contact will be created.

HTH

Pradeep


Submit Credit Card Contribution error with valid payment processor After updating to 4.7.30 there is a new "Submit Credit Card Contribution" button under the Contribution tab on a contact, which would be a very welcomed feature but I receive the following error message.

  Error

  You will need to configure the live settings for your Payment Processor before >you can submit a credit card transactions.

I'm using a valid Sagepay Payment Processor (with test and live credentials) that works elsewhere. I created a dummy test payment processor and that brought up the contribution form just fine. I debugged the code a bit and it seems that it's only returning BackOffice processors as the processor mode is not set in AbstractEditPayment.php.

Any ideas?

Thanks in advance.

Right - correct behaviour is for that button to only show if there is a valid live processor which returns true for supportsBackOffice

UPDATE - Patch has now been submitted to avoid loading of this button for invalid processors.


Help to renew membership using the API I would like to programatically renew memberships when a transaction has been completed in Woocommerce.
I want my members to have a more consistent experience and since I do a lot through the woocommerce store already, I wanted to do renewals and new memberships.

I need some confirmation to see if I'm doing this correctly though -
For a new membership, I think it is straight forward to simply do:

--confirm no membership entries exist already for this contact_id

$result = civicrm_api3('Membership', 'get', [
  'sequential' => 1,
  'contact_id' => 15947,
]);

--Create a new membership entry

$result = civicrm_api3('Membership', 'create', [
  'membership_type_id' => "Registered Participant",
  'contact_id' => 15947,
  'start_date' => 20200513,
  'end_date' => 20210513,
  'source' => "Payment",
]);

But for a renewal, I don't want to keep adding additional lines of membership entries so I am thinking same above except if an entry is found, issue a create with the ID and it should renew it correctly?

--confirm no membership entries exist already for this contact_id

$result = civicrm_api3('Membership', 'get', [
  'sequential' => 1,
  'contact_id' => 15947,
]);

-- Entry found so renew

$result = civicrm_api3('Membership', 'create', [
  'membership_type_id' => "Registered Participant",
  'contact_id' => 15947,
  'start_date' => 20200513,
  'end_date' => 20210513,
  'source' => "Payment",
  'status_id' => "Current",
  'id' => 8746,
]);

So the only difference between a new membership and a renewal is the 'id' and 'status_id' ?

So this was my solution.  Using Wordpress triggers, its fired off whenever an order is submitted and successfully paid.  If it contains the product to create new/or renew then.  I hope it helps someone.  I still need to add some error traps, otherwise should work fine for my setup.

 # Product ID for the registered participant is noted below
 #error_log("Line items: $item\n");
 if ($item["product_id"] == 33706) {
     $result = civicrm_api3('Membership', 'get', [ 'sequential' => 1, 'contact_id' => $contactid, ]);
     if ($result["count"] == 0) {
         #create new membership entry
         #start date/end date will be today to 1 year out
         $start_date = date("Ymd");
         $end_date = date('Ymd', strtotime($start_date. ' + 1 year'));
         $result = civicrm_api3('Membership', 'create', [ 'membership_type_id' => "Registered Participant", 'contact_id' => $contactid, 'start_date' => $start_date, 'end_date' => $end_date, 'source' => $item["order_id"], ]);
     } else {
         #renew membership
         $current = $result[values][0];
         $current_start_date = $current['start_date'];
         $current_end_date = $current['end_date'];
         $membership_id = $result['id'];
         if ($current_end_date < date()) {
             $new_start_date = date("Ymd");
         } else {
             $new_start_date = $current_end_date;
         }
         $new_end_date = date('Ymd', strtotime($new_start_date. ' + 1 year'));

         $result = civicrm_api3('Membership', 'create', [ 'membership_type_id' => "Registered Participant", 'contact_id' => $contactid, 'start_date' => $new_start_date, 'end_date' => $new_end_date, 'source' => $item["order_id"], 'status_id' => "Current", 'id' => $membership_id, ]);
     }
 }


Contact field, DB Error: no such field So I just updated CiviCRM to 5.0 and I keep getting the error DB Error: no such field when I try and view/edit a contact. It doesn't allow me to view any contact but I can search and find my contacts. I am not sure what is going on but this happened even before I upgraded Civi and it was 4.7.

I found out that it was a bad custom field in my data set, when I disabled the set I can view my contacts. Thank you everyone who helped me with this.


Easy way to read email on staging sites? Staging and development sites typically have real outbound email turned off, and for good reason (see https://wiki.civicrm.org/confluence/display/CRMDOC/Moving+CiviCRM+instance+from+production+to+staging, for example).

CiviCRM-specific ways to do this include the "Redirect to Database" setting (at /admin/setting/smtp?reset=1), and setting define('CIVICRM_MAIL_LOG', ...) in civicrm.settings.php

Unfortunately, it's rather tedious to examine outbound email when testing things like tokens, templates, etc.  As a developer I can see them in the log file or database, but that's not much good for user acceptance testing.

Is there an easy way for users to read the outbound CiviCRM email that's been sent to a log file or to the database?

Redirect to database puts them as mass mailings, or used to. You can read them in the UI the same as those.


Event Registration - Conditional fields We have online registration for an event. The registration allows the main attendee to register additional participants. The main person and the additional participants have different registration options. I don't want to display the additional participant registration fees/info on the main registration form. I only want to display that on the 'Additional Participant' page. On the additional participant page, which is only displayed if the main participant indicates on the main page that they want to register more than 1 person, I only want to display the additional participant fees.

Right now, this is display on both pages:

How do I just display the Registration pulldown on the main page for the first attendee and just display the additional participant information on the additional participant page? Right now both blocks are displayed on both pages.

I'm using Wordpress 4.9.9 and Civi 5.4.1.

It's not the easiest to work with, but you could do this with the Profile Conditionals extension.


Bcc not hidden on mail sent by SMTP - is this a bug? If a contribution page is configured to Bcc receipts to a given address, the Bcc should not be included in emails to any recipient of that receipt.

In my CiviCRM 4.7.9 site, the Bcc header is correctly not included in any receipt emails, if mail is sent with mail(), i.e., if "mail()" is selected at /civicrm/admin/setting/smtp.

However, it IS visible in the email to the donor, if mail is sent with SMTP, i.e., if "SMTP" is selected at /civicrm/admin/setting/smtp.

FWIW, the SMTP provider in this case is sendgrid, but I'm not sure yet whether that's relevant.

Is this a bug in CiviCRM, or is it an issue with Sendgrid?

Update:
A code change as shown here causes Bcc to behave properly in SMTP (sendgrid) and mail(). Makes me think it's a bug that could be fixed in core.

diff --git a/CRM/Utils/Mail.php b/CRM/Utils/Mail.php
index 57453a0..be3f052 100644
--- a/CRM/Utils/Mail.php
+++ b/CRM/Utils/Mail.php
@@ -267,6 +267,7 @@ class CRM_Utils_Mail {
       }
       if (!empty($headers['Bcc'])) {
         $to[] = CRM_Utils_Array::value('Bcc', $headers);
+        unset($headers['Bcc']);
       }
     }
     if (is_object($mailer)) {

Yes, it's a bug, which is now fixed: https://issues.civicrm.org/jira/browse/CRM-19173


Could anyone review our extension for donation receipts? We developed an extension for issuing donation receipts. Initial development was funded by seven German organizations and they just released the extension under a free license.

It can be found in the CiviCRM Extension directory some documentation is in the CiviCRM Wiki.

Would anyone who is eligible to do so review the extension so it can be marked for automated distribution? Obviously everyone is also very welcome to test the extension's functions and provide feedback ^__^

Thanks!

Awesome

Did you look at the extension from Karin? Do you know how it compares?
https://civicrm.org/extensions/cdn-tax-receipts


page not found errors for javascript following upgrade to 4.6.13 from 4.6.10 Civicrm version is on Drupal 7.  Drupal was upgraded first to version 7.4.3.  Paths for javascript and css files are not found.

Any ideas of how to fix this?

Have you ensured that CiviCRM paths are set correctly? In the Civi menubar go to Administer -> System Settings -> Directories and ensure it matches what's in Administer -> System Settings -> Resource URLs


How to get list of memberships whose start date is between a date range? I am trying to filter a list of memberships based on start dates. My filter consists of From date and To date. I want to get a list of memberships whose start date is between From and To date.

I am using a angular page with wordpress setup. Here is what I have tried so far with no success.

var membership = crmApi('Membership', 'get', {
          status_id: 2, // get memberships with status Current
          start_date_low: "2016-08-13",
          start_date_high: "2017-08-12",
          return: ['contact_id', 'membership_name', 'start_date', 'end_date', 'source']
        });
return membership;

Done @petednz - fuzion

Solved it. I have used this. start_date: {"BETWEEN":["2016-08-13", "2017-08-12"]} Have got the info from support > Developer > API Explorer. I am a newbie in CiviCRM. Was not aware of such a helpful API Explorer.


CiviCRM/Drupal site constantly logging user out Drupal 7.56 and CiviCRM 4.7.27

I have a site that uses very few add-ons (Views and Chaos tools in Drupal, API csv import in CiviCRM), and a few word replacements with the Grant module. Otherwise, it's an out-of-the-box set up.

Users are frequently logged out for no obvious reason. It's not the same action that triggers it so I can't pin it down to a particular error. My error logs showed a theme hook error but I've switched to a different theme and still not resolved the issue.

My recent log messages look like this (ignore the 'login attempt failed'):

And my top 'Access Denied' errors look like this

One explanation is that, rather than being logged out of the site, your users are being moved from a site they are logged into to one that they aren't logged into. If your site is served via https://www.example.org, you might see users "suddenly be not logged in" when they visit any of the following:

https://example.org, or
http://example.org, or
http://www.example.org

If your CMS site isn't configured to "lock in" a specific canonical URL (including protocol and hostname), CiviCRM may bounce people from another URL which they are logged into over to the URL CiviCRM thinks is "correct" (per CiviCRM's civicrm.settings.php). When this happens, the user experience is that they get logged out (but they will then be mysteriously logged back in if they visit the URL they were logged in on before).

Drupal isn't fussy about having a canonical URL, but CiviCRM is, and it's good practice anyway.

If this is the behaviour you're seeing, your best bet is to configure your CMS / webserver / .htaccess to enforce a canonical URL (single hostname and protocol), so that all visitors to alternate URLs are immediately moved over to the preferred / canonical base URL.


What determines the suite of Case Roles presented for assignment on the CIVICRM Webform Case Tab? When I select a Case Type on the Case tab of the Webform, A suite of Case Roles are presented so a Contact on the CIVICRM tab can be mapped to them. Some of the Roles for the Case Type I selected are not presented. Is there a setting I need to use so all case roles are presented? The one that is missing is an organization contact type we added.

My site is Drupal 7.41, CiviCRM 4.6.10, and Webform CiviCRM Integration module 7.x-4.11.

Come to find out that the role not being available to map was because the relationship name and label in the database did not match (i.e. name_b_a was "Third cousin once removed" but the label_b_a was "Distant cousin").  It seems like when the relationships were originally created we had the ability to set a different name and label - we're guessing this was in an earlier version of CiviCRM as currently the only thing you can add/edit directly in CIvi is the label.

Once the name field was revised to match the label, the role was available for selection in the Cases > case roles section.


REST error message saying request modifies the database, but it doesn't We're having our custom dashboard that our members log into rewritten by an outsourced agency. It is being done with Angular and will use REST to call the API.

We have a particular custom API call that is giving them the error "SECURITY: All requests that modify the database must be http POST, not GET." This call does not modify the database. It composes and runs a SELECT query using CRM_Core_DAO::executeQuery.

How does the REST security mechanism determine whether a call modifies the database? If it contains handwritten queries will they just have to use a POST request?

it's simply based on the name of the action, it has to be starting with get, so get, getsingle and so on are considered readonly and accepts over GET, the rest should be POST.

this being said, not sure using the rest api is the best option, you might want to use the 'normal' ajax backend and the js wrapper part of civi that takes care of calling the api the right way. this assume the same domain for civicrm and the dashboard


How to assign Drupal's system roles to Case Role in CiviCase I would like to Use CiviCase to manage my cases.

I find that the Case Roles can be assigned to update the case. However, the Case Roles are not the Drupal's system user roles. (e.g. Administrator)

Does it has a solution to assign the system roles to Case Roles?

Thanks!

Welcome to SE!  You're right that Case roles are not the same as Drupal Roles.

Case Roles are relationships. There is a module called "CiviCRM Relationship to Role Sync" that might help which is part of the civicrm_entity module, but not enabled by default.  Someone was asking about this just yesterday on mattermost and it seems we don't have much current documentation for it.

Another approach would be to use Drupal Roles and a post by @petednz might help: https://fuzion.co.nz/blogs/complex-civicrm-relationship-role-synchronisation-recipe


Remove link(s) from an Activity View screen via crmReplace How should  {$form.source_contact_id.html} from \civicrm\templates\CRM\Activity\Form\Activity.tpl be altered so only text remains/ without an URL? smarty escape doesn't seems to be a good idea, neither crmReplace (which can replace link attributes like class or href, but doesn't seems to be able to remove link entirely). Any advice, please!

How about:

{$form.source_contact_id.html|strip_tags:"<a>"}

You'll have to add some conditional statements so the smarty only runs when your are viewing the Activity, if you don't the Contact Reference field in edit/create mode will break.


How do you delete a tag set? How do you delete a tag set? I created a tag set and only really needed to create a new tag.

The documentation covering Groups and Tags is here at https://docs.civicrm.org/user/en/stable/organising-your-data/groups-and-tags/

To view tags, go to: Contacts > Manage Tags (Categories) in the navigation menu.  A tag can be edited or deleted using the respective links in its row.  If it is a reserved tag, remember to first untick the reserved box.
Hope this helps.


Should the link between an Activity and any Follow Up activity be visible through the UI I checked that when creating a Follow Up activity, it adds a value to  civicrm_activity.parent_id so that at least the database knows there is a connection between these, but afaik there is nothing visible on the Activities tab of the contact, nor within either of those Activities if you click 'View'.

While researching this I spotted Find Activities does have radio buttons for is / has a follow up Activity.

Would it make sense for the child and parent Activities to show there is a connection both on the Activity itself and on the Activity Tab

(info based on a 4.6.x version)

EDIT: Spotted this ticket (for civi 2.2.x - wow) that says:

5. Provide link back to parent activity when viewing a follow-up activity
Modify ActivityView to check if parent_id is NOT NULL
If NOT NULL, assign $parentURL to template - this should be a link to view the "parent" activity. (ActivityView.tpl already has logic to display this link if it's got a value).
"Prompted by..."

But I am having no luck seeing this in action on d46 or master. If this did exist and has been lost or removed can anyone confirm if this was intentional? Or is this a Regression?

I'm pretty sure there never was a visible link.  I certainly don't remember seeing one, and I've always treated the follow-up feature as simply a convenience for creating multiple activities rather than establishing some kind of relationship.

If there were to be a visible link, I (as a user) would expect the ability to break links and create new links between existing activities.


Use CiviCampaign to send emails to a target? We are running a campaign and have used SpeakOut! a wordpress plugin that send emails to a target and signs a petition.  For example Tell XYZ to do X! then it will send an email to XYZ from that person and have them sign the petition.  Can I use CiviCampaign to do something like that?

Many thanks!

Note: Using Latest Wordpress and CiviCRM

You can use CiviRules extension to get that is required. You can setup triggers, conditions and actions using this extension.

A detailed documentation has been compiled by them which can be found here.

Hope this helps.


PayPal Multiple IPN Setup in Civicrm A nonprofit entity introduces other nonprofits for social awareness.

Nonprofit entity is willing to use Civicrm in a way that their member Nonprofits can setup their donation pages with their own PayPal IPN/Account for Donation collection. This way the donation will go directly to respect nonprofit.

Is this scenario possible to setup Multiple PayPal IPN/URL for each nonprofit member to collect the donation?

Thank you kindly and please advise.

Rizwan Ashraf

Its possible to have payment processor of same type i.e it is possible to have more than one paypal payment processor in CiviCRM. You need to make sure you include correct payment processor on contribution or event page and also configure paypal ipn on each paypal account correctly.

https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/paypal-standard#assign-this-processor-to-your-contribution-or-event-registration-pages

https://docs.civicrm.org/sysadmin/en/latest/setup/payment-processors/paypal-pro#assign-this-processor-to-your-contribution-or-event-registration-pages


Unsure if I just broke my database with a custom field I added a custom field for authenticated users to add a bio on their profile page (and if there's an existing field I should use for this, please let me know). Not knowing how long I should make this field, and temporarily forgetting that mysql probably uses fixed-width for this, I set the field length to 32767.

It took a long time to create the field, but the page wait dialog finally completed and the field shows up in the Custom Fields list. But having seen the long wait, I decided to re-do the field at 4095 or 8191, and tried to delete the Bio field. THAT progress window has been a spinning blue circle for nearly an hour, and Bio is still showing up in the Custom Fields list in a different tab.

EDIT: perhaps worth noting that the page where I created the field also had a spinning wait cursor nearly 90 minutes after I did so, but I could see the Bio field as expected in the Custom Field list, so that process seems to have completed without letting the page know.

Did I break something, or will this get to my desired state after I wait long enough? This is running on a Linode at $20 a month, so the CPU/RAM is not particularly powerful.

You haven't said what field type you were using, but I think you should probably be using a note field rather than an alphanumeric. My understanding is that the note field isn't stored as fixed length.


How do I get the time in the change log to be the same as my local time? I am working with CiviCRM in a Joomla environment. The Joomla server time is set for UTC and can verify changes to articles are logged at the correct time. However changes made to CiviCRM consituent records are shown as 6 hours behind. How do I get the CiviCRM change log time to be UTC?

Check your timezone setting in Joomla.

Go to System, Global Configuration

Click on the Server tab and go to Location Settings


How is the en-/decoding of the optOut-URL done ? (algorithm) is someone there who knows how the en-/decoding of the optOt-URL is implemented ?
Example:
https://....../crm/civicrm/mailing/optout?reset=1&jid=7&qid=14&h=817b324557dc9cb9
I'd assume that the part "817b324557dc9cb9" is the encoded contact_id 15944 ???
Please help me ;-)
Thanks a lot and kind regards
Dieter
p.s.:
https://gchq.github.io/CyberChef/
=> Analyse hash:  817b324557dc9cb9
Hash length: 16
Byte length: 8
Bit length:  64
Based on the length, this hash could have been generated by one of the following hashing functions:
CRC-64
RIPEMD-64
SipHash

Welcome to SE!
You can see the construction of the opt-out URL here and the processing of it here

'jid' is the Job id
'qid' is the Queue id
'h' is the Hash

The contact_id is not included in the URL but can be looked up via the qid.


Civicase report shows empty list I have set up report to list the number of active cases, however the report doesn't show anything when I refresh results, even though there is a number of opened cases which show in the Case dashboard.

Any idea why this might be not working?

I am running version 5.13.1 on Wordpress

I added the code for the report (Developer Tab)

Class used: CRM_Report_Form_Case_Summary

SQL Modes: NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION

SELECT SQL_CALC_FOUND_ROWS c2_civireport.sort_name as civicrm_c2_client_name, c2_civireport.id as civicrm_c2_id, case_civireport.id as civicrm_case_id, case_civireport.subject as civicrm_case_subject, case_civireport.status_id as civicrm_case_status_id, case_civireport.start_date as civicrm_case_start_date, case_civireport.end_date as civicrm_case_end_date, IF(case_civireport.end_date Is Null, '', DATEDIFF(case_civireport.end_date, case_civireport.start_date)) as civicrm_case_duration

FROM civicrm_contact contact_civireport
inner join civicrm_relationship relationship_civireport on contact_civireport.id = relationship_civireport.contact_id_b
inner join civicrm_case case_civireport on case_civireport.id = relationship_civireport.case_id
inner join civicrm_relationship_type relationship_type_civireport on relationship_type_civireport.id=relationship_civireport.relationship_type_id
inner join civicrm_case_contact case_contact_civireport on case_contact_civireport.case_id = case_civireport.id
inner join civicrm_contact c2_civireport on c2_civireport.id=case_contact_civireport.contact_id

WHERE case_civireport.case_type_id  REGEXP '[[:cntrl:]]*3[[:cntrl:]]*' AND ( case_civireport.status_id IN (1, 3) ) AND ( case_civireport.is_deleted = 0 )

ORDER BY case_civireport.start_date ASC

LIMIT 0, 50

Based on additional tests and comments from Demerit, it appears that the report requires the case manager to be assigned to the case to list the case.

The obvious workaround is to assign a case coordinator to a case and then everything seems to work.


How do I configure the new recurring contribution feature in Webform CiviCRM module? The current -dev version of webform_civicrm module includes a first pass at adding recurring contribution functionality. This seems like a good place to post some examples of how it can be used.

Following existing logic in webform_civicrm creation of the recurring series uses the CiviCRM APIs. There is no additional code specific to Contributions, Events, or Membership.

Below please find:
Example 1: Give user option to pay for Event Registration either right now - or in monthly installments

Example 1: Give user option to pay for Event Registration either right now - or in monthly installments

Scenario: Parent (Primary Contact) signs up Child for Swim Club. Give the Parent the option to pay all Fees right now - or in Installments.

1a) set up the fields in the new Recurring Contribution section in the CiviCRM tab. In order for webform_civicrm module to set up a Recurring Contribution two elements are required: Number of Installments and their Frequency.

1b) configure the webform fields: I've added a select / checkbox so the User can indicate if they wish to pay all now - or in 10 installments. There is a Conditional that if checked Yes -> shows the Number of Installments field; That field is disabled and hidden.

1c) Event registration for Child: Child is registered as a Participant we see the first Payment.

1d) the Primary Contact's record contains the first Contribution in this Series

1e) the Primary Contact's record contains the Recurring Contribution Series - details.

Note
even though the monthly contributions will process as specified, subsequent installments don't (yet) get associated with/credited to the Event registration. CiviCRM Core can't (yet) associate a Recurring series with an Event registration.


Migrating Drupal Users and CiviCRM Data to New Website We are building a new Drupal 7 website but have an existing one with some deprecated features and custom code that we no longer wish to salvage for various reasons. I have established the new Drupal site and installed the same version of CiviCRM that we are using currently. The new site has the same CiviCRM configurations, extensions and integration modules and I am ready to import the CiviCRM database into it, which is no issue.

The next step is to finish setting up the new Drupal site and import the users from the old site. Once the users are migrated into the new site, I will re-sync the user accounts with CiviCRM.

What I want to know is, how does CiviCRM determine which contact record to sync the Drupal account with and what does it do in the case of duplicates? I need to make sure membership access is applied correctly to the same user accounts.

Glad it worked! CiviCRM uses the civicrm_uf_match table to store the Drupal ID in the column uf_id (user framework id) and also the CiviCRM contact_id.


System status notice about option value 0 in number field I'm getting this System Status notice:

The Following Option Values contain value fields that do not match the Data Type of the Option Group

It references an option group with 0 as one of the values. The group is used for a custom field of type Number. I went into the mysql database and saw that the option group had type String, so I changed that to Integer, also tried Float - nothing got rid of the error.

Is it a spurious error due to a bug or am I not understanding something about how option groups and values work?

We finally poked around and noticed standard option groups with integer values did not use zero. We had used value zero to represent "No". We changed "No" to value 3 and updated the existing records. Once all zeroes were gone, the warning disappeared. Later, we noticed that other radio button option groups use Alphanumeric data type even if the values are integers. Ours had been configured as an Integer (INT11 in the database). I can't say whether either of these conditions are the root of the warning, but avoiding zero appears to have worked. See also:

Option Values with problematic Values


How to make links in email direct and non-trackable We are sending emails containing links which are redirecting through civi. We need them to go direct to the website. (Our civi is not public facing). All articles / questions i have seen are about making urls trackable, we need the opposite.
Any link added to a message template is creating a url that runs through our server. This happens regardless of how email is sent, single email, bulk email etc.
What am I doing wrong?

Parvez is rigth!
I want to add: In your case, when you will never ever want to use trackable links, you can switch them off in the CiviMail component settings: Uncheck the options "Enable click-through tracking by default" and "Enable open tracking by default"


Not able to choose "unsubscribe group" for a mailing? According to the user guide, if I select contacts by search and then start a CiviMail mailing to them  I should be offered the "Unsubscribe group" option, as shown in this helpful screenshot posted on another question.

I can't get this to appear for the life of me. I'm on 4.7.27 under Wordpress. All I get is "Hidden Group 1234" in the Recipients field. Has this behaviour changed?

The reason for the question is that I want to do various searches to segment people but maintain a single unsubscribe group that would apply to any of my searches.

EDIT This might be a "please help me fix my CiviCRM install" question instead of a "how's it supposed to work" question.

On at least two of my installs (one Wordpress, one Drupal7) I don't see the Unsubscribe group option. Huh?

Reproduce: Search all contacts » Select some contacts » Mail by CiviMail.

Expect to see Unsubscribe Group option, but do not.

I agree with @petednz that this works on the 4.7/Drupal7 (actually 5.0.0 at time fo writing) demo site.

What you describe is exactly what I observe at dmaster.demo.civicrm.org.

Steps

Run Search and select some contacts.

Choose Email/Send via CiviMail

On the next screen I see the Unsub Group


Error when executing Update Membership Statuses Scheduled Job For some reason, the Scheduled Job for Update Membership Statuses has not been working on my site for some time. When I run it, I get the following error message:

Fatal error: Call to a member function delete() on a non-object in /home/neftempo/public_html/sites/all/modules/civicrm/CRM/Member/BAO/Membership.php on line 665

I just updated the site from 4.6.8 to 4.7.4 and the problem was not resolved.

Can someone please suggest how to resolve this problem - we need to update our membership statuses.

p.s. The site is hosted on a shared server, so I do not have access to the actual log files - hopefully the above provides sufficient guidance.

I took a look at the code for you, and I couldn't see a stand out problem. The bad news is that you need a developer to look at this, insert debug information (or run it in the debugger) and really figure out what's going on.

Most helpful would be if you requested the logs from your SysAdmin, and then posted back when you have them. We need to figure the path of execution.

Do you have custom extensions installed, and does it work if they are disabled?


Membership Structure Help I have some questions about structuring our memberships, we have two branch locations, is there a way in the membership reporting to show the reports on each location? or do I have to create types such as "Family Location 1" & "Family Location 2"

In addition to this we also have tier memberships based on normal incomes and low income in each location.

Here is a screen shot of what we currently have, we are in development so this is not live yet.

Any help would be much appreciated

Zeak

it seems quite a simple solution to simply have an extra pair of Membership Types, eg Individual Locality A, and Individual Locality B. That would ensure that the 'location' data was always immediately available to you when look at membership data. anything else is likely to require some customisations in order to show that information in the membership context.


How do I automatically make roles inactive when case is resolved CiviCRM Version 4.5.6

Looking at some case types (it seems to work for other case types) where after case status has been changed to "resolved," case roles remain active.

Is there a way to automatically end date these relationships?

Well after further testing, it appears that the case roles are end-dating the day the case is resolved.

I'm not sure where our issues were cropping up, but this is a fairly new install with lots of data being imported which is where I suspect the issues arose.

Sorry for the red herring.


One of parameters (value: Array) is not of the type Integer - initially observed during import, but same when visiting Contact Record As per the title - this message was observed first during an import, which failed. I re-imported with a 'tracker' field so i could see exactly where it failed. And rinsed and repeated. Found 2 records in import that were tripping it up. When trying to visit those records in civicrm i got same error, and with backtrace got

/sites/all/modules/civicrm/CRM/Utils/Type.php(362): CRM_Core_Error::fatal("One of parameters  (value: Array) is not of the type Integer")

but does that help identify the culprit data?

Ok - so stroke of luck - was checking the Contact table and spotted that one of my problem patients had 'array' in the Preferred Communications table, as did the other record which the import failed on. As did about another dozen.

Once I changed the value in the db i could then visit the record.

Which I guess poses another question of how did they get array in as the value and I may post that as a separate question.


Complex multiple Selects in Custom Coded Reports Following on from my query  here How to write custom report SQL

(CiviCRM 4.7 on WordPress)

I built the SQL I needed as step 1, which works fine in mysql / phpmyadmin.

I have used civix, to generate a module and to clone the 'empty' report from 101 and register the report - so far so go, if I want a report that says 'hello'.

Next step slot in my SQL and test ....  and within civi it gives sysntax errors.

Debug shows that it is inserting SQL_CALC_FOUND_ROWS all over the SQL, where as I need it only on the final select.

Although my requirement is simple my SQL is complex, and I can't achieve it in one SELECT statement ( maybe possible by a SQL wizard ), as it requires contact relationships in two directions and a 'pivot' of contributions, it builds 3 temporary table and joins them up in a final select.

My main question is 'can CiviReport only handle a single select?'  and the second question is is there something I can do, or should I just resort to coding outside CiviReport structures?

Thanks so far for the help given, it has been fantastic.

Eaxmple issue

CREATE TEMPORARY TABLE tmpcontrhist AS
   SELECT SQL_CALC_FOUND_ROWS house_id,
     YEAR(contr.receive_date) memb_year,
        contr.total_amount memb_amount
FROM
   tmpareareps,
   civicrm_contribution contr
WHERE
   house_id = contr.contact_id;

Database Error Code: You have an error in your SQL syntax; check the manual      that corresponds to your MySQL server version for the right syntax to use near    'CREATE TEMPORARY TABLE tmpcontrhist AS SELECT SQL_CALC_FOUND_ROWS house_id, ' at line 21, 1064

In the CRM/Report folder: grep -r -i "TEMPORARY" *

This gives you some existing reports that use temp tables which you can look at to get some ideas.

Form/Activity.php
Form/Contribute/Detail.php
etc...


At what line in a file should I add a new variable I want to add a new variable to the variables.php file.  Should I add it at the bottom of the file, or where it logically sits in the order of the variables, ie  under the variable that will be above it on the form?

I assume you mean CRM/Core/Config/Variables.php

If you're adding something to that file that you're going to submit as a pull request or patch back to core, put your changes where they fit most logically.  It'll make more sense to others in the future.

If you're doing a site-specific customization and want to edit the file, don't.  You'll have trouble when it comes time to upgrade.  Instead, create an extension.


How to creat a report of recurring donors How do I get a report of all the donors who are set up for automatically give the same amount each month

You can use Recurring Contributions(CiviCRM >> Reports >> Contribution Reports) report to see all the recurring contribution setup in the system.

You can also use Extended report extension where it gives more reports for recurring.


Sort issue with CiviCRM Entity Reference on a Drupal node I'd like to link a Drupal node (e.g. content type = 'event' with some custom fields in Drupal) to a CiviCRM event via an entity reference field.

The use case is that there are some events that don't require registration, but some that do, but we want them all to show in the same Events list with the same theming options (these will be pulled in various places on the site in various ways, not just in a calendar list). So: we create all the events in Drupal, and for the ones with registration options, we set up a parallel event in CiviCRM which is linked to the Drupal event by the entity reference field I mentioned at the outset, and we would link with a registration button from the Drupal event directly to the CiviCRM event registration page if there was an entity entered.

I've installed CiviCRM Entity and managed to add a field of type 'entity reference' to the Drupal event node.

I can tell it that this is a CiviCRM event, and asked it to sort on the event's start date in descending order, so that new events would be at the top.

When trying to edit the field (or create an event node if I just leave the field untouched), I get this:

PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'civicrm_event.event_start_date' in 'order clause': SELECT civicrm_event.id AS entity_id, :entity_type AS entity_type, NULL AS revision_id, :bundle AS bundle FROM {civicrm_event} civicrm_event ORDER BY civicrm_event.event_start_date DESC; Array ( [:entity_type] => civicrm_event [:bundle] => civicrm_event ) in EntityFieldQuery->execute() (line 1192 of /home/public_html/includes/entity.inc).

It looks like the column name in the database should actually be 'civicrm_event.start_date' -- am I right? I grepped in the civicrm_entity folder and didn't see any references to 'event_start_date' in the code, so where should I look next?

UPDATE: As a temporary fix, if I disable sorting it works as expected.

When you install Entityreference, you get a Views Display, 'Entityreference'

You can create a Entityreference view, and use that View to choose what the options are for your entityreference field widget.

In this view you can sort, and get your sort order that way.


Update Membership Statuses I am using civi on wordpress 4.8.1

I just need to check something.

If I have a membership that expires tomorrow and Update Membership Statuses is not enabled to run Daily, will that person's profile still have an "Active" status when it expires tomorrow?

On the other hand, if I do enable Update Membership Statuses, will that person's membership profile status change to "Expired" tomorrow?

I am asking because the description for this job says "WARNING: Membership renewal reminders have been migrated to the Schedule Reminders functionality, which supports multiple renewal reminders.", so I not sure I should enable it at all.

Thank you

the warning is about how Reminders are managed. In terms of the Scheduled Job - yes you need that enabled if you want to have the Membership Status automatically updating (and it would a rare situation you would not want this happening)


Unwanted unsubscribe in profile We have CiviCRM install with a group, used for newsletters, and some event registrations. Our customer added a checkbox to the event registration profile to subscribe to the neweletter.
Now, when someone already subscribed to the newsletter (added to group 'newsletter'), uses the event registration profile but not checking the checkbox to subscribe, this results in an unsubscription (removed by web).
My question: how to avoid this (evidently unwanted) behavior? And how to allow people to subscribe in a better way to subscribe  to a newsletter from the event registration form.
Thank you!

This is a frustration and I wish there was a better answer. I've asked a similar question myself.
One solution is to use tokens in links sent out in mailings as much as possible, so this checkbox is already selected, but you won't be able to cover all uses with this.
You can use two groups, the first of which is the one on your forms. Then set up a CiviRule that contacts are added to a second group, the real mailing list, when they are added to the first group. But then people who are logged in or using a tokenized link won't be able to remove themselves from the group, so I wouldn't recommend this unless you aren't using tokenized links or allowing logged in users.
I'd like to fix this, at some point.


How do user permissions work for multi-level organizations? We are currently using Action Network for our CRM (even though it is not designed for that), marketing and digital mobilising tools.

We moved to them because of their system of parent/sibling/child groups. In AN, each of our branches can have a child group (siblings of each other). Data flows up to the parent group automatically but down only if we specify.

Could we replicate this in CiviCRM? Could we connect different local/national databases together? Or use segmentation and user permissions to achieve the same effect (i.e. local leaders only accessing local data, national leaders accessing it all etc)

Many thanks, Stuart

Yes - I've done this several times.  Many organizations with a chapter/branch format do this, such as IMBA, Wikimedia Foundation, the Australian Green Party, and many others.

There are several different approaches you can take.

The "easy" approach is just to use built-in ACLs.  Create groups of "staff" and "members" for each chapter, using parent/child groups to handle the hierarchy.  I've done this for a union with 10 locals.  I wouldn't scale this much past that.
The "heavyweight" solution is CiviCRM Multisite  You'll want the Multisite Permissions extension.  Use this approach when each chapter needs its own website.
The middle ground is to use Relationship Permission ACLs.  I haven't used this, but it's helpful if you a) don't need separate sites per chapter, b) you need 3+ levels of organization (sounds like you do), c) You have enough chapters that using traditional ACLs is unwieldy.

As of November 2017, the relevant docs are being reorganized.  Multisite is being separated from multi-level ACLs.  However the original wiki page combining both is still online.


Access CiviCRM fields from Drupal entity I use CiviCRM 4.6.14 with Drupal 7.43.  I have defined a Drupal content type with a field that contains a CiviCRM contact using the civicrm_entity module.

When I render this content type, I want to access a few fields from the contact - namely, its name, website, and a Google map link (derived from its address or geocode or whatever's best).  In PHP, how can I access these fields from the $content object?  If I var_dump($content) I can see the name & geocode, but not a full address (should I piece that together from component fields? seems error prone) and no website field at all.

If I do this by trial and error using var_dump, I'm going to end up with code like

print($content['field_venue']['#items'][0]['entity']->display_name);

which doesn't seem healthy.

The website is a separate entity from the contact; so is the address data, though some of it is made available (for the primary address only) on the Contact entity.

I know the Address entity is available; I don't think the Website entity is, but that's out of an abundance of caution; it's basically identical to the Phone entity, so you should just be able to edit civicrm_entity.module to patch it in.  If you use it and it works, don't forget to submit a patch upstream!


How can I sort groups by the date the individual was added to the group? How can I sort groups by the date the individual was added to the group?

I can't figure out how to do it in either manage groups, search, or reports.

For a standard group there is no direct way to do that through the UI as the group(s) someone is in are stored in a single field.

If you are using smart groups, then you may be able to use the underlying criteria for the group to work out the joining order (eg, display and sort by membership join date if your smart group in based on a particular membership type). However that won't be ideal or even appropriate in many situations.


Why do some contacts share the same Drupal user? I've got a bit of a baffling issue and I'm not sure where to begin looking for fixes.

I have begun to notice several instances where I have several contacts that share a single Drupal user account. These are contacts who are clearly not the same person and have no business sharing a single Drupal account.

Edited to add:

I'm using CiviCRM 4.6.8 and Drupal 7
None of the contacts share the same email address
Contacts are not synced via rules
We have recently opened registrations for 2 very large events. The merge rule we're using is supposed to sync contacts on name and email address
There is a profile used for site registrations. We collect name, email address, phone number, address, etc.

Any idea what might cause this to happen?

I'm not sure what is causing the contacts to share Drupal accounts, but to detach contacts from Drupal user accounts, you will need access to the civicrm_uf_match table in your CiviCRM database.

See the question How to disconnect civi contact record from Drupal user? and the answer I posted there on how to detach contacts.


Fresh installation gets 403 error when non-administrator user tries to access a page I've just made a fresh installation of Wordpress/CiviCRM, followed installation instructions and hope to have installation requirements fully satisfied. I can get access to the dashboard and everything looks fine when I log in as administrative privileges, but when using another user to login (with Wordpress "Editor" priviliges for example), i get a 403 errore while trying to access the dashboard. What could be wrong in my setup?
I also have another question: which is the default URL I could give my users to access the dashboard? should I give them https:///wp-admin/admin.php?page=CiviCRM or does exists by default another path like https:///civicrm/dashboard ?
Thanks a lot in advance

What do you have at /wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Faccess%2Fwp-permissions&reset=1? You probably just need to set up permissions.
More info here: https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/


Logout from your CMS to avoid session conflicts I'm following this guide. After I did gitify wordpress --hooks and followed the instruction to fill up setup.conf file. Then I did ./setup.sh -Dg as prompted and this is when I get error - NOTE: Logout from your CMS to avoid session conflicts.

I tried logging out from my wordpress local admin account, but to no avail. Any ideas?

That's not an error message. When the setup.sh script outputs "NOTE: Logout from your CMS to avoid session conflicts." then it has successfully completed. You may proceed to log in and begin using CiviCRM.


Wordpress Civicrm -Uncaught ReferenceError: CRM is not defined for contribution page WordPress -  5.4.4 ,
CiviCRM -  2.62 ,
Theme Avada
Using shortcode added contribution to page but in console, we are getting error Uncaught ReferenceError: CRM is not defined so the page is not loading fully and payment option -  PayPal and credit card not displaying how we can fix this issue.
Also when we logged-in as admin there is no error in console and payment option showing properly
thanx
please check -

I'm also facing this problem (CiviCRM 5.3.0, WP 5.6.1, Avada 7.2.1).
The CiviCRM-Javascript-Resources are not loaded at all.
Disabling the Fusion Builder (so working with the regular WP editor) for the page where the CiviCRM-shortcode is inserted gets the resources loaded and the payment form working.
We're still facing Avada layouts issues on the next page though. But at least registration and payment work now.