Deleting and Restoring a Contact detaches Contact from User One of our administrators mistakenly deleted three contacts while trying to remove them from a distribution list. I restored the three contacts from trash, but didn't notice that the three restored contacts now no longer showed a Drupal User ID next their Contact ID in the CiviCRM summary screen for the contact.

The users were unable to sign up for events (you have to be have a membership to access signup), and when we realized this, I found each User, clicked the Edit button, then I clicked the "LMGA Member Info" button in the upper right of the Drupal User Edit screen. Just opening that tab showed the CiviCRM info for this member, and then I found that the CiviCRM summary screen for this user now showed Contact ID/User ID. The link seemed to have been restored by Drupal accessing the CiviCRM tables.

I think all is well now, but I'm unsure of what actually happened and why. Can some kind soul please enlighten me?

Thanks,
Rick

It's on purpose that it removes the link to the user when you delete. It was added years ago here: https://github.com/civicrm/civicrm-svn/commit/3d9843c5912cb9d77e557b4a8cd4ef711f2cdcbb

and seems related to deduping https://issues.civicrm.org/jira/browse/CRM-6861

But yes Civi will reattach them once you do something that triggers the matching which is usually on email address, i.e. if the drupal user and the contact record have the same email.


Multiple Contacts and Memberships Later Merged to One Membership I have a problem that I'm not entirely certain how to work around. I have two contacts, who have been two separate members for a long period of time. But recently they married and are now sharing one membership (example: Two at same address). How would I record them sharing a single active membership while keeping their past data (as singles we'll say) available for them to review?

Thanks!

Matthew

There is an option to merge contacts and seems to be what you are looking for. Search for them in Find Contacts and then select to merge the two.


Memberships - Renewals and grace periods I seem to remember doing this in the past, but can't recall how I did it.
We need a membership where:

it's one price to join
one price to renew during the grace
one price to renew after the grace

You could use the CiviDiscount module and tie various discounts to membership status rules.
You would need to create a discount code for each membership type and status and then in the "Automatic discounts" section at the bottom of the settings for the discount code, choose the appropriate membership status for that code.


How to control API4 permissions for CRUD operations? How do I control permissions for API4 calls?

Events

The API kernel broadcasts an authorise event.

Core permission check listener

The main API permission check subscriber will respond to the event by:

$apiRequest = $event->getApiRequest();
if ($apiRequest['version'] < 4) { /* blah */ }
elseif ($apiRequest['version'] == 4) {
  if (!$apiRequest->getCheckPermissions()) {
    $event->authorize();
    $event->stopPropagation();
  }
}

Adding your own listener

If the core logic doesn't meet your needs, it is possible to get the symfony event dispatcher service and add either a listener (for single events) or a subscriber (for multiple events).

For example, to add a subscriber:

$subscriber = new MySubscriberClass();
\Civi::service('dispatcher')->addSubscriber($subscriber);

When your listener/subscriber is called, then call the $event->getApiRequest() to find out the parameters you are being asked to authorise. If the event should be authorised then call $event->authorize().

SQL clauses

For actions based on get(),
the selectQuery->getAclClause() method will call $baoName::getSelectWhereClause($tableAlias) to add a where clause.

It doesn't seem possible currently to apply differing ACL logic depending on the action with this method.


How to set the default Preferred Language I think i must be missing something.

When I go to Option Groups /civicrm/admin/options?reset=1

and choose Language

/civicrm/admin/options?gid=75&reset=1

i see no value listed as Default, and no option when I click 'edit' on an option to set it as Default, yet if i look in the DB for values where option_group_id = 75 it shows en_US as default.

I set this to the desired value but where I am being blind in terms of doing this via the UI?

We can set default language in localization settings - /civicrm/admin/setting/localization?reset=1

But, if I change that, the default value in the options_value table doesn't change, so not sure if it meets your requirement.


Is civisualize compatible with 4.6? https://civicrm.org/extensions/civisualize-missing-data-visualization-extension this page only states 4.3-4.5

It appears to be working.
I went to this path on my site /civicrm/dataviz/contacts and it looks the same as it did on CiviCRM 4.4


cf-civicrm State/Province field dropdown not populating after country is chosen I've just started working with the cf-civicrm plugin so I may be missing something simple.
I can't get the CiviCRM State/Province select field to fill. I tested it using the "CiviCRM Contact and Address" form template after running into the issue on a form I was building. No luck. The field just returns N/A for every country I've tried.
My experience has some parallels to this github issue but the fix that worked for rbaugh isn't working for me.
Questions, tip and pointers about how to resolve this would be most welcome.
Thanks!

This type of problem commonly occurs when any of these is true:

No default country is set
No default state is set
Available countries is not set - list on right-hand side is empty
Available states is not set - list on right-hand side is empty

Check your CiviCRM Localisation Settings. Below is a screenshot of a working configuration for a site in Australia that allows both Australia and USA country/state options to be selected.


Payment Processor Error message 9003: MD5 Verification failed after upgrade After the recent upgrade to 4.6.9, I am getting this error when processing secure Authorize.net payments:

Payment Processor Error message
9003: MD5 Verification failed

My payment processor settings appear to be correct, including API Login, Payment Key, MD5 Hash and Site URL. I am using the Drupal 7 CMS and both settings.php and civicrm.settings.php are correct.

No other issues exist after the upgrade.

*Edit:

I suspect the MD5 Hash value is wrong here, which has always been recorded as my store_id. Should this be a transaction key, or does the hash value come from Authorize.net? Here's a snip from my log file:

    Nov 03 09:27:04  [info] $Fatal Error Details = Array
(
    [message] => Invalid value passed to getPayment function
    [code] =>
)

Nov 03 09:27:04  [info] $backTrace = #0 /home/example.com/public_html/sites/all/modules/civicrm/CRM/Core/Error.php(364): CRM_Core_Error::backtrace("backTrace", TRUE)

1. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Financial/BAO/PaymentProcessor.php(188): CRM_Core_Error::fatal("Invalid value passed to getPayment function")
2. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Contribute/Form/ContributionBase.php(349): CRM_Financial_BAO_PaymentProcessor::getPayment("", "live")
3. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Contribute/Form/Contribution/Main.php(73): CRM_Contribute_Form_ContributionBase->preProcess()
4. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Core/Form.php(455): CRM_Contribute_Form_Contribution_Main->preProcess()
5. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php(94): CRM_Core_Form->buildForm()
6. /home/example.com/public_html/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Contribute_Form_Contribution_Main), "display")
7. /home/example.com/public_html/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contribute_Form_Contribution_Main), "display")
8. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Core/Controller.php(353): HTML_QuickForm_Page->handle("display")
9. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php(312): CRM_Core_Controller->run((Array:3), NULL)
10. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php(86): CRM_Core_Invoke::runItem((Array:15))
11. /home/example.com/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php(54): CRM_Core_Invoke::_invoke((Array:3))
12. /home/example.com/public_html/sites/all/modules/civicrm/drupal/civicrm.module(489): CRM_Core_Invoke::invoke((Array:3))
13. [internal function](): civicrm_invoke("contribute", "transact")
14. /home/example.com/public_html/includes/menu.inc(527): call_user_func_array("civicrm_invoke", (Array:2))
15. /home/example.com/public_html/index.php(21): menu_execute_active_handler()
16. {main}

I found the issue. The ca.civicrm.moneris extension folder was deleted during the drush civicrm-upgrade process.

As a result, my "Moneris Credit Card" Payment Processor Type disappeared and defaulted to Authorize.net (which uses an MD5 hash algorithm) after the upgrade. After restoring this, I entered my API token as opposed to the store admin password in the Payment Processor Edit form and my transactions are now working again. I have renamed this field label to "API Token."


Notice: Undefined index: is_deceased I get this message whenever I edit a contact:

Notice: Undefined index: is_deceased in CRM_Contact_Form_Contact->preProcess() (line 216 of C:\Bitnami\civicrm-4.6.9-1\apps\civicrm\htdocs\sites\all\modules\civicrm\CRM\Contact\Form\Contact.php).

Is this something I should be concerned about?

Thanks, Ian

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

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


database Upgrade URL does not load Upgrade screen Civi 5.15.1, WP 5.3.2

We are in the process of upgrading Civi from 5.15.1 to 5.21, and are stuck at the "Upgrade the database" step in the upgrade instructions here:
https://docs.civicrm.org/sysadmin/en/latest/upgrade/wordpress/

The first time we pasted the upgrade URL into our browser, we got a message saying our PHP version was out of date. So we upgraded it to version 7, and tried to reload the upgrade URL. Instead of an "Upgrade screen", we got the WP login page. Upon logging in, the WP Dashboard appeared, without any Civi upgrade button. Nor does the WP Updates page list Civi as an option.

We backed up our database before starting the installation -- should we just restore it, or are there other steps we should take first?

EDIT: We performed the above actions using Firefox 72.0.1 with the Standard Browser Privacy settings, but can make changes if need be.

Try running the upgrade url

http://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm/upgrade&reset=1

Thanks

Pradeep


Changing group_type to mailinglist fails with unknown db error / deadlock Hejdo,

Today I just wanted to make some of our groups accessible by CiviMail by checking the mailinglist group type checkbox. But this took long time (more than 10 minutes) no matter if I did this for a group with about 10 or about 2k contacts. I also tried via group api, same same.

The ui ajax call responds with error and the corresponding log entry states:

"DB Error: unknown error", -1, 16, (Array:2), "INSERT IGNORE INTO civicrm_group_contact_cache (group_id,contact_id) VALUES (...")
[...]
Deadlock found when trying to get lock; try restarting transaction

We have somewhere around 180k contacts and 2k groups. Civi is 4.6.10. CMS is current Drupal 7, DB is Mysql 5.5.46.

Any ideas on how to solve it or investigate on?

This sounds like corrupt tables or a stuck MySQL process.

If you have access to phpMyAdmin, you can select all tables at the bottom and then choose "repair tables".

If you do not have phpMyAdmin, but you have access to ssh then you can use mysqlrepair (or mysqlcheck -r), see more at http://linuxcommand.org/man_pages/mysqlcheck1.html

If you have neither you should ask your hoster to do a repair for all tables.

Besides that, restarting MySQL makes sense.

If you need further MySQL tweaking, please look at http://mysqltuner.com/
Nothing I have seen beats that script.


Wordpress main search widget - Search events Does the search widget in wordpress integrate with CiviCRM.  I need for people in mi site to be able to search for events in a particular city. For example if I have an event in Miami and someone searches in main site for Miami all events in that city to show up.

Is that possible???

If you use a short code for your event on a page and include the search terms you are looking for in the permalink it should be found in search results. So in your case you would create pages (or posts) for each event with the short code included  and include the city in the permalinks.

Hope this helps.


CiviCRM does not send mail to microsoft based webmail clients (outlook, hotmail and live) CiviCRM does not send mail to microsoft based webmail clients (outlook, hotmail and live)

CiviCRM Version 4.7.4 on Wordpress

  ECDHE-RSA-AES256-SHA384:256 CV=yes: SMTP error from remote mail server after MAIL FROM: email address redacted SIZE=1620: 550 SC-001 (BAY004-MC1F36)

This has been happening consistently over time, is there any way to track or identify where the process is falling down?

We have tested thirdsectordumgal (via Civi) to live, which failed.
live (via civi) to thirdsectordumgal appeared to work, but has not shown up.
live (via civi) to live also failed.

We use Sendmail to send out the mail as SMTP authorisation has not worked in the past.

Microsoft's mail services have blocked your mail server.

Their specific reasons for blocking may vary (and their server's response codes will guide you here to some degree), but there are a variety of things you can do to improve the situation.

Check your mailserver's reverse DNS matches your domain
Check the domain in question's SPF configuration permits your server
Ideally, configure DKIM for outbound email on your server
Join Microsoft's Junk Mail Reporting Program (JMRP) and "claim" the IP address of your mailserver
If JMRP reports your server blocked, submit a request to unblock your server

Alternatively you might consider one of the hosted mail provider plugins available for CiviCRM - managing relations with mail providers can be a big task, and outsourcing that may save you a lot of time.


Firing a hook on smart group status change? The use case I have is as follows:

An organization has multiple chapters, and it's important to record which chapter the person is in.  For a variety of good reasons (e.g. ACLs), chapters are represented by adding the contact to a group.  When adding a contact to a group, a hook_post in an extension fires, and fills out a custom field with the name of the chapter they're in.

However, the chapter of a member is determined by location, so we want to move to using smart groups that can automatically classify contacts into chapters.  However, when a user is added via Smart Group, the hook doesn't fire, and the custom field's not filled in.

Any suggestions?  I'm open to reorganizing the data - but the users would really like to have folks automatically classified into chapters by geography (zip code ranges, etc.) and so I think this requires that chapters be set by smart group.  It's OK if an answer requires coding, I'm civix-savvy.

This site is using CiviCRM 4.4.16, Wordpress 4.2.2.

I think we have a client where a postcode look up (on Contact save) triggers creation of a Relationship being made. The Relationship connects the Individual to the Regional Group (contact of type Org'n). You could then use our Relationships as ACL extension to run your 'access rules' from. I will ping JoAnne to comment further if she can.

From JoAnne:  I'll add to this rather than comment.

There is a table in the db linking every postcode/suburb combination to one of the 200+ organisations of type "local group".

The initial relationship is created when a person signs up for a specified membership type.

With any change in a member's primary address, the relationship is re-checked. If warranted, that relationship is ended and a new one created with the new local group.


Menu bar missing on fresh CiviCRM on Wordpress I did a fresh install of CiviCRM on Wordpress on WP Engine. It installed successfully, but the menu bar is missing so I can't navigate to any of the pages. I also have "system status: error." Here's a screenshot:

If I try to navigate to any of the front-end pages that are dependent on CiviCRM, I get the message "Sorry but we are not able to provide this at the moment.
You do not have permission to access this page."

I'm running CiviCRM 4.7.8 on WordPress 4.4.3. My host is WP Engine.

EDIT: in my browser console I'm getting a lot of "can't find resource" type errors and it looks like it's trying to go to the wrong URL. But when I changed the Resource URL in the settings file to an absolute path, it broke the whole plugin and brought me to a white screen.

The issue is the way WP Engine builds the user directory structure.   We have a proposed patch in : https://github.com/civicrm/civicrm-core/pull/8494

Until that is merged, you can use the answer listed here: Word Press Install Missing civicrm.settings.php; dashboard unavailable; no menus

Make sure the global $civicrm_setting; precedes $civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = 'http://example.com/example-resource-url/';


Best way to handle memberships involving multiple contacts? In trying various scenarios with memberships that involve multiple contacts (our most common scenario is partners/spouses), where I landed at this point that seems to work best for my needs is to use households, have the membership at a household level, and use the "Household Member is" relationship on the membership type so the membership applies to everyone with that relationship.

The issue I'm running into with this is when I run a membership report it includes each member of the household (which is good!) and ALSO includes the household itself (not so good). Particularly when it comes to generating a membership sign-in list for our meetings (and our meetings can be pretty large), it's not ideal to have the households on the list.

Unless I'm totally missing it, I don't see that you can filter by contact type on the membership reports. If I could limit the contact type to individuals that would solve my problem. I'm comfortable with SQL and could take the query listed on the Developer tab as my starting point, but if I do that am I then in the realm of creating an extension to do this?

I also did a lot of reading up on Households in general and it looks like a lot of people don't use them at all. I could go the "payment by other member" route and do a soft credit but that seems cumbersome to me (you have to create the payment on the NON-paying user FIRST from what I can tell), so given all of this how have others gone about handling memberships with multiple contacts?

Thanks for your thoughts and experiences on this.

We tend to:

not use households but use individual memberships and the inheritance feature to construct Family (Household-like) Memberships
use Drupal Webform CiviCRM module to make this a one form signup (adults + children on one form) - with Webform CiviCRM you can add more then one Contact on the Form and specify relationships between these
Contacts
use inherit (on the Membership Type config) -> so that the children inherit the Family Membership by relation

Example - below (adding Children) - in this case we can't add Spouses - they need to sign their own waiver. But we do get them a Free Spousal membership if they specify a Spousal relationship to the Primary Contact.


How can I determine if an extension is compatible with a new Civi version? What is the best way to determine whether an extension is likely to be compatible with a contemporary Civi version rather than just not updated to reflect as much?

If you go to the Extension page eg https://civicrm.org/extensions/civivolunteer then you should see a RELEASES section near the bottom which states what version of CiviCRM the extension is known to work for. This may be obvious, but your question doesn't explain what you have already done to check.


Strange error when updating 5.23.0 Joomla When i try to update my Joomla version (Windows) to 5.23.0 I get the screen to run the database upgrade utility after the question are you ready to upgrade (Yes) I get the screen with the progress-bar left at the screen but it does nothing.
When I look at the console of the screen I see warnings as:
Laden voor het  met bron ‘http://localhost/Joomla/Joomla/administrator/components/com_civicrm/civicrm/bower_components/jquery/dist/jquery.min.js’ is mislukt.
(and 14 others). The URL must be with only once "/Joomla". I didn't change or save the civicrm.settings.php. But there is no double /Joomla.
What is the reason that the URL is wrong? I have tried version 5.23.1 with the same result.

I have updated the lines 824 en 825 in CRM/CORE/Resources.php with a dirty solution:

$map = ['bower_components' => str_replace('Joomla/Joomla','Joomla',rtrim(Civi::paths()->getUrl('[civicrm.bower]/.', 'absolute'), '/')),
      'packages' => str_replace('Joomla/Joomla','Joomla',rtrim(Civi::paths()->getUrl('[civicrm.packages]/.', 'absolute'), '/')),
    ];

It can not be the real solution but the site is now working and i have just completed succesful the database-upgrade. Maybe only a problem with sites on Windows.


Is there a way to reorder the fields in an export mapping? I had a request to reorder the fields in an export mapping that had been created previously. Is there a way to do this via the UI? And if not, is it kosher to manually edit the column_number in the civicrm_mapping_field table, or could that produce unexpected results somehow? (I am assuming that is what determines the sort order, so please correct me if that assumption is wrong!)

Laryn -

I don't think there's a way in the UI to update the order... I would suggest creating a small mapping and reordering it in the database (I agree that the column_number is the likely candidate - interesting that it's not weight as in so many other Civi features) to confirm that will work.

Lesley


How can I select all countries to be available for address fields in CiviCRM 4.7? I am asking this question to clarify the issue raised in this question: Available countries list won't appear when set in Localization

The user interface on the 'Settings - Localization' page (admin/setting/localization) has changed in CiviCRM 4.7.  As a result there doesn't seem to be an easy way to select all countries to be available for address fields.

In CiviCRM 4.6 and before you could simply select the whole list of countries and click 'Add' to make them all available.  However in CiviCRM 4.7 you appear to have to add each country individually, which is a time-consuming task as there are a large number of countries.

This appears to be a step backwards in terms of the user experience.  Is this a bug or am I missing something?

Also the help text for this fields needs updating.  It currently reads as follows:

  Available Countries

  Which countries are available in the Country selection field when
  adding or editing contact addresses. Profile and Custom 'Country'
  fields also use this setting. To include ALL countries, leave the
  right-hand box empty.

In CiviCRM 4.7 there is only one box. There is no right-hand box. If you leave the box blank and click save it will revert to the default country (i.e. 'United States').

While a better user interface would be preferable, there IS a pretty decent solution for technical users suggested here: https://civicrm.stackexchange.com/a/10013/12


How to change the default Activity dashlet to include activities other than "scheduled"? CiviCRM 4.6.9.  Drupal 7.30

How can I change the default Activity dashlet to include activities other than scheduled activities? By default, it only shows scheduled activities

You would need to change the code. But there is another way to get the Activities on your dashboard.
Go to Reports, select Contact Reports and then Activities. If you then set all filters as you wish and tick the 'Available for Dashboard' option, and save the report as "My Desired Activities" (or any other name :-)) you should have a new dashlet available for your dashboard with your settings for activities?


contacts where name = email I inherited an installation where a predecessor imported an email list of 70K records and populated the Contact Name AND the Email address with the email address.

How can I isolate, export, and remove them?

Warning: noob alert.

Welcome to S.E. and CiviCRM. Having Contacts without First and Last is quite common and is often done intentionally to get Contacts signed up for Mailing Lists. If a contact has no First or Last then it is correct that the email shows as their Display Name and their Sort Name.

That said, if you really want to find and destroy/cull, then Search Builder (under Search) is your friend as it offers a Filter for 'IS NULL or IS Empty' hence you should be able to do something like the following

Individual > First Name > Is NUll (or empty)
Individual > Last Name > Is NUll (or empty)

From the Actions tab you can then Export them, and then Delete them


What is the best way to associate a building with a person? As a neighborhood organization, we use CiviCRM for all of the things you would expect, and it works well. However, we like to collect information about the actual houses in our neighborhood, to track tree pits, security cameras, and other outdoor things that would stay constant, even as people move in and out.
What is the best way to track buildings and associate them with the current residents?

In order to answer "best way", would need to know what are the tasks you do that use this information and what reporting you need. But as a general answer, one way is to create a new contact type (Admin - Customize - Contact Types), and then add your buildings as contacts. You can create custom fields on those contacts to store camera information etc. Then create a relationship (on the relationship tab on the contact) to the people (or household, depending on whether you're using household records or not, or simply prefer to directly relate to the people). Then when the people leave, you end the relationship(s) and make new ones with the new people.


Creating memberships in batches after payment I have sent out membership fee by postal mail to contacts that are not members (i.e. they don't have a membership registered in CiviCRM). If the contacts have responded by paying, they are in fact members. The payments are automatically recorded using our bank importer.

So, I have a bunch of contacts who have payed their membership fee, but have no membership recorded. How do I create memberships other than manually one by one?

My interpretation of your question is that the payments are already recorded in CiviCRM. I am also assuming you can have some way of searching for the contacts who have paid membership fees but have no membership. (If not, edit your question to make that clear and I will amend my answer accordingly).

Once you have obtained a list of the contributions (via an Advanced Search displaying results as contributions or a Find Contribution search) you should export the results.  You will need at least the contact id,  and probably the date of the payment (which I assume will become the start date for the membership).

Create a CSV for importing that contains at least the contact Id, the membership type and the membership start date (refer to the Import Membership section of http://book.civicrm.org/user/current/common-workflows/importing-data)

Import the membership file (Memberships > Import Memberships )

Note: this will create memberships for the contacts, but the memberships and the contributions will not be linked.  That linking cannot be done via the GUI.

As a suggestion, next time it may be more efficient to send people the URL for an online membership page so that the membership is created at the time the payment is recorded.


Is it posisble to stop contributions of zero? Back office staff occasionally and accidentally enter an amount of zero for a donation, which Civi accepts as valid. Is it possible to reject this as an error? Price sets can do this but don't actually prevent the user from not selecting the price set & then entering zero.
Using Civi 5.19.4 & Drupal 7.69

I am afraid to say that your use case or business logic is not supported in CiviCRM ATM. You can either raise a request on https://lab.civicrm.org/dev/financial or write an extension and implement hook_civicrm_validateForm hook to throw validation error on screen and not allowing user to submit the form.

HTH

Pradeep


Is CiviCRM a viable choice? 4 Questions I'm looking for a software for a non-profit organization, which should cover some special functions in addition to the 'normal' CRM functionality and wonder whether CiviCRM is suitable. I've been working in software development for a couple of years, mostly Java, but have no idea about Drupal, PHP, etc. I've installed and looked at CiviCRM, read some documentation, but have no clue if this (see below) can be done with CiviCRM out of the box or maybe with some own develpment.

One can imagine the scenario as follows: A school has modeled students and teachers as contacts. Each student belongs to exactly one class (about 8-14 students per class), lessons take place once a week, the class on a certain theme runs longterm, the students and sometimes the teachers change after a few months. Students can participate sequentially in one of about 20 classes. At each lesson, the presence of students is checked manually by means of a list.

Is it possible to model and manage the classes in a UI form like e.g. contacts as own data structures (room, date, theme, ...), building a new structure that does not yet exist in CiviCRM?
How best to describe the affiliation of a student/teacher to a class? Is there a possibility except 'Tags'?
The registration and deregistration of a student/teacher to a class must be logged. It must be possible to determine at any time which student has been in which class for how long.
For the purpose of attendance control of the lessons, a form must be printed out with the names of the students in the lessons, the lesson dates, etc. of a particular period (e.g., a month or quarter). This is filled in manually during the lesson (present yes / no). For this, a database query must determine the participants of the class and submit this list to a print template. Is there an example for this procedure?

Thank you for your comments!

We have a site for students and schools/providers. it is all run off Relationships and Activities and I think some of how we approached this could assist your project.

I would make each Class a Contact, then you put a Relationship between the Teacher and the Class, and another one between the Class and the Student. That way a Teacher can change and it only requires one form to be submitted (end old Teacher relationship, create new one)

We built a customisation of CiviReports so a teacher can see all 'their' students (ie the ones in Class X that teacher has relationship to) and can submit the Attendance for all class students on a single form (this uses one Activity per week but could be modified for one Activity per class with 20 yes/no fields for the 'term')

Here are more specific answers:

  Is it possible to model and manage the classes in a UI form like e.g. contacts as own data structures (room, date, theme, ...), building a new structure that does not yet exist in CiviCRM?

I would attempt to do this with Class as an Org sub-type

  How best to describe the affiliation of a student/teacher to a class? Is there a possibility except 'Tags'?

Per my comments above, I would use Relationships (using our extension Permissioned Relationships so you benefit from ACL and 'second degree' relationship ACLs)

  The registration and deregistration of a student/teacher to a class must be logged. It must be possible to determine at any time which student has been in which class for how long.

Do as an Activity - possibly using an approach similar to our customised civireport interface so you can batch record attendance.

  For the purpose of attendance control of the lessons, a form must be printed out with the names of the students in the lessons, the lesson dates, etc. of a particular period (e.g., a month or quarter). This is filled in manually during the lesson (present yes / no). For this, a database query must determine the participants of the class and submit this list to a print template. Is there an example for this procedure?

This could either be done via a Smart Group 'export' or via a Drupal Views csv download.

NOTES

You haven't said anything about whether a Teacher 'should' only see their students, or if it at least would make is simpler for the teacher if they only see students they teach. using Permissioned Relationships delivers this simply but may not be required.

For our design, using Drupal, we build a lot of lists/forms using Views and Webforms so that the normal Teacher doesn't need to actually interact with CiviCRM itself. Everything they need is provided via Menu Blocks, with simple links to their lists of Classes, Students, forms that need submitting, Attendance Reports etc. Happy to explain more offline if that sounds useful. (petednz on chat.civicrm.org)


What are best practices around newsletter signup on contribution page, profiles and contact seeing their donation history? I have a question about what the best way to set something up.  I am using Drupal 7 and CiviCRM 4.6.

I have a contribution page, where I want to add people to a newsletter group when they make a donation. I know that there are urls in emails that go out that allow someone to come back and remove themselves from groups, but I would also like to have these users be able to find and edit their profile, see previous donations, etc.

Is there a way to do this just in CiviCRM? Do I have to create Drupal Users? I am currently trying to do everything with CiviCRM profiles, but would it be better to use Drupal webforms? What is your experience and what do you recommend as best practices?

Thanks in advance.

You can do this by including a checksum link in your emails that returns the user to their contact dashboard and allow them to edit it.

You can also use a checksum link to a profile to let them update things.

it'd be something like the following

http://mydomain.org/civicrm/user?reset=1&cid={contact.contact_id}&{contact.checksum}


How do I export my contacts as a .csv or .txt file? How do I export my contacts as a .csv or .txt file?
I need this for my records and can not find where I can do this. Please help. Thankyou.

You can do a search (of any kind) and the resulting screen will have an Actions select menu. Select any or all of your contacts and then you can select the Export Contacts in the Actions menu.  See https://docs.civicrm.org/user/en/4.6/common-workflows/exporting-your-contacts/

You can also run any number of reports and save the result as a CSV.


Added some custom fields but it'snot coming in advanced search I have 4- 5 custom fields in CIVI CRM but I am not getting it in advanced search.
Please help me I want to search based on custom fields.

Welcome to CiviCRM Stack Exchange. Please make sure to select the option "is searchable" for evry custom field, otherwise they will not appear in searches.


Multi-value fields in profile Can someone explain to me step by step, please, how to create the multivalue fields illustrated in the User Guide under the title Multi-value fields in profiles? (It shows work experience list, but I wish to use it for something else. However I do not understand even how to create this work experience list!)
Thanks!
Mike Somorjay

Multi-value fields can only be created on the Contact entity, which may be what's confusing.  Here are the steps (with screenshots):

Administer menu » Customize Data and Screens » Custom Fields.
Click Add Set of Custom Fields.
Set Used For to "Contacts".
Check the box Does this Custom Field Set allow multiple records?


How do I change the fields shown for participants on the CiviEvent Dashboard? I'd like to add one of the fields of the contacts in the list of participants shown on the CiviEvent Dashboard.

How would I do that? I'm sure it has something to do with the Smarty templating, so maybe I need a gentle introduction to that...

I'm running CiviCRM 4.7.7 but believe this would be the same for most recent versions.

Not easily ... you can create an extension to call  hook_civicrm_searchColumns to provide the extra data to the template, and then change the CRM/Event/Form/Selector.tpl template to display that data.

Note that will change the event dashboard and also the events tab of a contact and the results of Find Participants.


How to allow parents to register children but still record their own info For class registrations, parents register their children, but they don't need to register themselves (because they won't be attending the class). Has anyone come up with a way to handle this, that allows us to capture the parent and students as regular contacts, vs resorting to a profile of custom participant fields?

I've looked into the Youth Registration extension, but there are open issues stating that it isn't compatible with 4.4 (and we're on 4.5.8).

Edit: Webform-CiviCRM is Drupal-specific, so is not an option for this organization.

If you're using Drupal, Webform-CiviCRM Integration will handle your scenario pretty easily. It allows registering any number of participants for any number of events on a single form.

You may also want to e-mail Sarah Gladstone, the author of the Youth Registration extension, what she uses instead - but I'm pretty sure they use Webform-CiviCRM integration these days.


Sorry but we are not able to provide this at the moment. DB Error: no such field Return to home page I have created profile forms, using custom fields, which open up perfectly in create mode but when I test the forms I get this error once I hit save:

  Sorry but we are not able to provide this at the moment. DB Error: no
  such field Return to home page.

Any ideas of how to solve this?

Here is a link to one of the forms in question: http://skillsguru.web.za/civicrm/?page=CiviCRM&q=civicrm/profile/create&gid=21&reset=1

The detailed debugging report is here.

Based on the error in the debug message, the problem field is this one: civicrm_value_developing_an_accredited_course_5.provide_instructions_on_any_furt_119

I can't find it now, but there was a bug report recently that discussed problems with very long custom field names.  Please find your custom field with an ID of 119 and see if the form works when it's removed (or at least see if the MySQL error changes).  Consider recreating those fields with shorter names - you can always display them with the longer "names" in the profile's field label.


Upgrade to 4.7.29 causes Internal Server Error with cron I upgraded our test site to 4.7.29 (type fixed) yesterday and the cron has been failing since then with a 500 server error.

We are running on Wordpress 4.9.2. The cron has been working successfully until now for years.

We have a cron job running every 30 minutes using the URL to cron.php method.
I've checked the cron.php permissions; they haven't changed and have checked that the user and password are still valid and have enough permission (they do). When I run the command directly from the command line I also get a 500 internal server error, same with running it in a browser. The only thing we did was upgrade the version of CiviCRM.
Help?

So I resolved the issue. Here's what I found. It looks like the permissions for bin have changed from 755 to 775 at some point (I looked at one of our backups and it used to be 755, but in 4.7.29 it was set to 775.)

I used this question and response:
URL for cron Jobs gives me a 404 error (not the same error, but I was desperately searching!)

Made the same changes (updated bin permissions to 755) and it all worked. So that's good (for now) but with every upgrade will we have to remember to update permissions?


How can I create a smart group with no matching contacts? Is there a way via the UI to create a smart group with no matching contacts in the database? For example, our database does not currently have any contacts where the city is "Cottonwood," but I'd like to create a smart group for Cottonwood residents now so when someone with a Cottonwood address is added, they're automatically added to that group.

Thanks in advance.

The easiest way would be to create a test contact with city Cottonwood, search on it. Create a smart search out of it and then delete the test contact.


Using CiviCRM for Coworking Check in tracking One part of our nonprofit is running several co-working locations. We have members that can buy a part time membership that lets them use the facility 10 times a month.

We would need a way to have a member login page at the front of our locations where the member "checks-in." We'd want to display how many times that month they have checked in and how many more visits they have for the month.

While I'm asking, room reservations extensions/

Thanks,

Brad

To just track them, I would be using Activities, and if you are using Drupal you could put together a small block/form on login page where they would submit the Activity. Then use Views Aggregation to count their visits (and Views Calc to show how many remaining.

There is also the civi booking extension to check out. CiviCon video here


Will recurring contributions be recorded for memberships not hosted by CiviCRM? I'm in the process of moving our legacy memberships over to our new Civi install. We needed to get our membership drive going so we just used vanilla PayPal recurring donation buttons. I've set up Stripe on this new install since they offer $15k of free transactions.

I created membership types to correspond to what we had set up on PayPal. For example,

Foo Membership

Financial Type: Member Dues
Minimum Fee: $5
Auto-renew Option: Auto-renew Required
Membership Type Duration Unit: 1 Month
Membership Type Plan: Rolling

I've entered all the dues paying members with accurate start dates and even imported their dues history as a contribution import.

Will Civi keep recording contributions for these individuals even though the payments are all being done offsite? Or will I need to import/record them each month or get all the legacy members switched over to Stripe?

Civi will not record contributions for PayPal recurring contributions that aren't set up through CiviCRM.

Broadly speaking, there are two types of payment processors when it comes to recurring contributions - those that rely on webhooks and those that rely on tokens.  Most webhook-based processors call the webhook the IPN ("Instant Payment Notification") address.

With IPN processors (like Stripe/PayPal), when you create a recurring donation, CiviCRM sends some info to the processor (amount, how often to charge, the CiviCRM contact ID, the recurring payment ID, etc.).

When the payments are processed on PayPal's end, the processor will push some data to a URL that Civi has set up explicitly for the purpose (the "IPN URL").  So Civi won't create payments until PayPal says, "Hey, we processed this and it succeeded or failed".  PayPal relies on the info that Civi sent to PayPal when the payment was created to send data back to Civi - so non-Civi recurring donations won't work, because, e.g., PayPal doesn't know the contact ID to send in its IPN.

So one option is to record the payments manually each month.  The other is to investigate whether you can shoehorn the Offline Recurring Payment extension to fit your needs.  Note, however, that the extension isn't tested on modern versions of Civi and is for a slightly different use case - so unless you are (or have access to) a coder, this might not be a good choice.


Google forms, mailchimp and civicrm I want to collect some data from our contacts through Google forms, which I can do.

But is there a possibility to link to civicrm through mailchimp? I am new to civicrm and mailchimp. What can be done and how to do it? I just want to know what all options I have, before I opt for a simple Google form.

I am using wordpress. And my CiviCRM works on LAN not integrated with any website.

There is a Mailchimp CiviCRM Integration Extension which you can download.
Details are here at https://civicrm.org/extensions/mailchimp-civicrm-integration

Details on how to enable extensions are at https://wiki.civicrm.org/confluence/display/CRMDOC/Extensions


Reset external ID to null We frequently try to match facebook event attendees to contacts in our database in order to send targeted emails to the person. By matching them to our database we know a lot more about the people (e.g. geolocation to include reference to an elected representative). The process in civi to do this is cumbersome. We take the list of people from facebook (names only) and assign an external ID, then import the list to civi. We assume that names are unique (a somewhat reasonable assumption for our database). Following this process we want to free up the contact's external ID field to allow the next import to run without having to manually de-dupe anyone who has an external ID previously set.
How can we either:

Do this without external IDs
Reset the external ID to null

We are using wordpress 4.4.1 and civi 4.6.10

If you have sql access, it's a very simple update query

update civicrm_contact c
set    c.external_identifier = null
where  c.external_identifier is not null

This, of course, will null all of them for all contacts but I think that is what you're asking for.


PayPal Security notice, do I need to take action / upgrade Civi? Do I need to upgrade CiviCRM? Should I be concerned? I'm running  CiviCRM 4.4.4.
See below:

This is a reminder email. If you have already taken action, please ignore this notification.
We’re contacting our merchants with some important information in response to an industry-wide security upgrade which is not unique to PayPal. This change involves upgrading Secure Sockets Layer (SSL) certificates over the course of 2015 and 2016. Our upgrade efforts for API endpoints are scheduled to start in June 2015.
Because these changes are technical in nature, we advise that you consult with your partner, website vendor, or individuals responsible for your PayPal integration. They will be able to identify what, if any, changes are needed. Please forward the information below to your technical contact for evaluation. We are here to help your technical contact work through this to ensure you continue to process payments through your current integration with us.
Full technical details can be found in our Merchant Security System Upgrade Guide. In addition, our 2015-2016 SSL Certificate Change microsite contains a schedule of our service upgrade plan.
Questions can be directed to our Merchant Technical Services team on our Technical Support website. Click here for more information.

It seems it is about your ssl connection, so it's on the openssl layer connected to your webserver (apache or nginx).

Test your ssl connection with that site, https://www.ssllabs.com/ssltest/ it will tell you what needs to be improved.

In short, nothing to do with civicrm, but upgrading to the latest version is always a good idea anyway


How can I add soft credits to a Recurring Contribution Series If I sign a donor up for a monthly/Recurring Contribution Series -> then I can go in and add a soft credit to the Contribution.

But I can't add it to the series - so next month - when the next Contribution is generated I don't get any Soft Credits.

Has anyone looked into this? Add fields to Contribution Recurring Series and then code to template those into the Contribution that is generated next?

I don't think this is currently possible, but I've recently been up to my elbows in soft credit customizations.

I think the answer is an extension that checks whether the first gift is soft credited.  If so, it should apply an identical soft credit to succeeding gifts.

I recently released the extension Soft credit Custom Fields.  You could use soft credit custom fields to further specify other options.  E.g. only soft credit the first X contributions; if the contribution amount is increased later, does the soft credit increase as well; etc.


How to store template_id that new event is derived from I'm working on an event management framework where I want to have a set of event templates, and create events based off of those templates.

I'm trying to find a way to get at and store which template a newly created event was derived from but I can't quite figure out what to do.

I tried looking at both
hook_civicrm_postProcess() (which has the template_id but not the new event's id)
and hook_civicrm_post() which as the newly created event id, but doesn't tell you what template it was derived from.

Can anyone think of a way to find those two values at the same time so that I can put the data in a custom field on the new event?

This is the reverse of what you're trying to do but might have the intended result:

Instead of populating the custom field after event creation, how about adding the custom field to your event template and populating it there?


Is there a way for a user to verify themselves when following a checksum link? Use case:

Email a checksum link to a user asking them to update their profile data.
When that user clicks the checksum link, request that they fill out a couple of verification fields such as postcode/date of birth/account number before being shown their data (just in case its not them).

I saw this demo'd at CiviCon London 2014 but can't remember who presented it, what it was called or if it was already part of CiviCRM or an extension. Googling for it has been unsuccessful.

I dont remember this session at CiviCon London. By any chance, are you referring to the email address validation on unsubscribe (the user has to enter their email address to unsubscribe)

I suspect the way the above would need to be done, would be:

a. Take the user to a different validate and confirmation page.

b. On confirmation, send the user to the real profile edit page

c. Add a hook to the profile edit page to ensure that any user coming here  has come via the confirmation page


How to update multiple records with API? For doing updates to multiple contacts using the API, is there a better way than this?

$res = civicrm_api3('Contact', 'get', $params);
foreach ($res['values'] as $contact) {
  civicrm_api3('Contact', 'create', array('id' => $contact['id'], ... ))
}

For a large number of contacts, this is slow and eventually runs out of memory.

You can use chaining:

civicrm_api3('Contact', 'get', array(
  'return' => 'id', // more efficient since you don't care about the get results
  ... other search params ...
  'api.Contact.create' => array('last_name' => 'Something'),
));

The 'id' will be set for you automatically by the chaining. For more about chaining see this post.

Also remember the 'gotcha' that unless you specify otherwise, this will only fetch & update 25 records.


Email-to-activity processing – can't create subfolders of the inbox When setting up a Civi site for a client, I turned on email-to-activity processing.  When you do this, Civi tries to set up two folders ('CiviMail/ignored' and 'CiviMail/processed') as subfolders of the inbox folder.  However, the mail server doesn't support this, and puts them in a different place in the folder hierarchy (on the same level as the inbox).

I've patched this for now but it doesn't seem like a good long-term solution.
 Has any one else run into this?  Any ideas on how I might deal with it in a longer-term way?  Seems like something that would be good to make configurable.

(The relevant code in Civi is in CRM/Mailing/MailStore/Imap.php)

You can aslo create an issue on https://lab.civicrm.org/dev/core/issues and then send a Pull Request on GitHub.


setting membership status override in bulk update I've made some changes to our membership structure and will be creating new memberships for a significant number of contacts. I'd like to keep the old memberships for completeness and have created a new status of "Transferred" to distinguish them from normally Expired or Cancelled. I can set the status with a bulk update on the records, but I can't see a way to set the Status override field in the bulk update (it doesn't appear as an option in profiles) and I am worried that the automatic membership status check will change them to Expired.
Using CiviCRM 5.26.2

You could do that with the API:
$result = civicrm_api3('Membership', 'get', [
  'sequential' => 1,
  'status_id' => "Transferred",
  'options' => ['limit' => 0],
  'api.Membership.create' => ['id' => "\$id", 'is_override' => 1],
]);

(Find all memberships with status 'Transferred' and set override)
Or in Explorer:

If you can adjust your membership status rules to avoid using status override, that would be preferable but in this case your Transferred status only applies to some membership types.


Pointing to /civicrm breaks Wordpress site, 404 HTTP response The requested URL /civicrm was not found on this server.
CiviCRM 4.6.3
Wordpress 4.1.1

After having created a campaign widget the example.com/civicrm returns a 404 HTTP response, when clicking on "contribute"?

This instance of Wordpress is running on apache and virtualhosts with other Wordpress installations

Already tried whats here: Forum CiviCRM

Thanks keep up the great work!

Can we verify a few things?

What are your WordPress permalinks set to?

They should be Post Name (%postname%)   That setting is here:  example.com/wp-admin/options-permalink.php

This will add to your .htaccess file the following:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Now can you go to example.com/wp-admin/admin.php?page=CiviCRM&q=civicrm/admin/setting/uf&reset=1

This is the menu option Adminsiter -> System Settings -> CMS Database Integration.

You should see 'civicrm' in the WordPress Base Page setting.   If not, add it there.

Confirm that there is a WordPress page titled 'CiviCRM' in the list of WordPress Pages: example.com/wp-admin/edit.php?post_type=page

This page should have a permalink of example.com/civicrm

Once all these settings are in place, you should be good.


Mass cancelation of memberships I have a list of some 700 email addresses that currently have a membership status of Current.  I'd like to change to a new Membership status I've created in Membership Status Rules called Bouncing Cancelled.

I've tried exporting doing it via an import:

"Email","Membership ID","Membership Start Date","Membership Type","Status Override","Status Override End Date","Membership Status"
"xxxx@yyyy.com","19201","2018-10-01","Member","1",,"Bouncing Cancelled"

And variations of that (like setting the just the status to just Cancelled), but regardless of what I do the import always fails with: Invalid value for field(s) : Membership Status.

Can suggest a different way?

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

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

Cheers

Pradeep


Unable to select profiles when creating online event registration I am running CiviCRM 4.7.17 and Joomla 3.6.5 and I am unable to select a profile when I turn on online registration for an event. The "include profile" drop down field is greyed out, and when I click it only "None Found" is listed.  However, if I click on the "preview" button, it displays the default "Your Registration Info" profile.  I can also click "create" and create a new one.  It saves to the profiles, but when I come back into the event and select online registration, the new profile no longer shows up in the "include profile" field.

This is true for any of the "include profile" fields on the online registration configuration page.

I can select a profile for a contribution page but just not events.

I went back to Test site that was running CiviCRM 4.5.4, and I could select profiles.  I upgraded to CiviCRM 4.6.9, and I was no longer able to select the profiles.  Version 4.6.9 post upgrade notes indicated that there were changes for the event workflow templates.  Not sure if that is related.

I tried this on the CiviCRM Joomla demo site, currently running v4.6.18, and I could select profiles.  However, the major difference is that I have several of the CiviCRM extensions installed on my Test and Prod sites.

I see similar posts, but some answers discuss Wordpress and others indicate a fix back in v4.5.4.

Can anyone point me in the right direction?

Thank you in advance for any assistance.

Found answer from a newer post:

  After more investigation, the problem is solved using the fix from
  agh1 (thanks to him by the way).

  It looks like a problem in the civicrm code using jquery.

  Here is the url of the fix. We tested it and it works.

  https://github.com/civicrm/civicrm-core/pull/10152

  I hope this will be in the next civicrm release code.


Joomla release 3.7.2 appears to have broken the menus I applied the Joomla 3.7.2 update yesterday in my test site. Now when I navigate to CiviCRM the menu doesn't appear at all.

I am running CiviCRM 4.7.19 and Joomla Version is : Joomla! 3.7.2 Stable [ Amani ] 22-May-2017 09:46 GMT.
 The Joomla Platform Version is:    Joomla Platform 13.1.0 Stable [ Curiosity ] 24-Apr-2013 00:00 GMT

Anyone else seen this behaviour and , if so, is there a fix for it?

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


Financial types in contribution is always default and not taken from contribution page I have contribution pages for different membership classes. Each page has a different Financial Type so that the transactions can be exported and the accounts differ for each membership type. However no matter what Financial Type is set in the contribution page it seems that 'a default' gets associated with the contribution. This does not happen for Events where the Financial Type is correctly picked up from the Event.

Maybe I have something set up incorrectly but it looks like a bug to me.

Cheers
Martin Fuggle

If you are using Price Sets on the contribution pages - i.e. you selected Click here if you want to configure the Regular Fees below as part of a Price Set, with the added flexibility and complexity that entails - then it may be that the financial type is being taken from the price set rather than from the contribution page settings.

Also note the distinction between the financial type of the contribution and the financial type of line items - see discussion at Contribution Page Price Sets Not Recording Different Financial Types.

However in the similar question Why is a contribution given a financial type different from that allocated to the contribution page used?, price sets were not the issue and a solution was not recorded.


How to use the new Pdf.Createmulti in CiviRule? Since version 2.9 recently released it is now possible to send multiple PDF but I can't find the option when setting a CiviRule 2.16? I can just select 'Send PDF'

but then there is no way to select multiple PDF.

Has anyone already succeeded?
EDIT: This question is related to these two other ones:
Multiple PDF in one CiviRule and Share development costs

After asking Jaap from Civicoop, maintainer of the extension, it seems that the option of sending multiple pdf from a civirule is not yet possible. It's meant to be used from the API v3 interface. But with small additional development, it would be easy to have it as an option in CiviRule.


Creating CiviMail cron job in CPanel I am on shared linux hosting and using the CPanel cron job setup page. Set to run every 1/2 hour. I just need the command line, and I consulted the books for more info. The command line I came up with is:

/usr/bin/php -q /home/acct123/public_html/wp-content/plugins/civicrm/civicrm/bin/cli.php -j -s mydomain.org -u Paul -p password -e Job -a process_mailing

This doesn't work. Cron returns (via email):

PHP Fatal error:  cli.php can only be run from command line. in /home/acct123/public_html/wp-content/plugins/civicrm/civicrm/bin/cli.class.php on line 86

What I did to fix:

My php path was wrong. Should have been:

/usr/local/bin/php -q /home/acct123/public_html/wp-content/plugins/civicrm/civicrm/bin/cli.php -j -s mydomain.org -u user -p password -e Job -a process_mailing

Then I created a new wordpress role using a role plugin, "civimailrole" with the only privilege "Access CiviMail".
Then created new wordpress user "civimailusr" and assigned only the role "civimailrole".
Used the new user and password in the command for CPanel cron job editor.
Sent test mailing to myself, worked.

I would appreciate any comments on any security issues for this setup.


Can I export full database and import it in a fresh newer CiviCRM version? I am experiencing difficulties during CiviCRM upgrade from 4.7.14 to 4.7.31 or 5.1, namely, fields like contact.birth_date get broken. (More: DB Error after upgrading 4.7.x to 5.1 (Drupal))

I have noticed that during CiviCRM version update, there is a process of sequential updates that seem to also include database updates.

I wonder, if it is possible to export full database and re-import it in a newer version fresh CiviCRM installation?

Aivars, If the problem you facing is something related to report then i would suggest to fix the report rather wasting time exporting-importing data/structure from 2 different instances. The problem you facing has nothing to do with db structure. The error in report might be

Any installed extension might be conflicting with report code, so you can probably try after disabling/Uninstalling each extension.
Try creating new report from template, sometimes the form values stored in db for saved reports might have values that are missing/renamed in newwer version.

If you still willing to give a try for exporting-importing data/structure then here is a way how you can do it. The doc is pretty old so you will to need to manipulate with the version you trying.

HTH

Pradeep


which scheduled job handles email confirmations? When contacts add themselves to a mailing list group, they get a confirmation mail, saying

  You have a pending subscription to the [xxxx] Mailing
  list. To confirm this subscription, reply to this email or click here.

The click works, the reply doesnt. It gets send to an email address that is otherwise set up correctly to handle mailing bounces (its an address like  [foo]+c.3.3.cde2e639840a9457@[mydomain] )

Which scheduled job should I enable to pick up this confirmation ?

The bounce processor is in general the one handling, well, the bounces. Check the job log if something is written (but in general, the jobs aren't very good at returning the problems they encounter)

How often is your bounce processor running?


Deduping between Individuals and Organisations An issue that's come up while we've been cleaning up our records for GDPR - we have a significant number of records where organisations have been entered as individuals, and vice versa.

This is mostly through user error - for example from records bulk imported as individuals, but also because individuals use an organisation email to sign up or contact us, or we only have an individual contact email for an organisation.

However, there is duplication between these contacts, and testing on CiviCRM I realise that if you create a new individual contact with the email of an existing organisation, 'Check for Matching Contacts' doesn't find the existing organisation. And, of course, the dedupe rules can only be run on either individuals, households or organisations.

Is there any way to set a dedupe rule across all contacts? e.g. a basic check to see if an email is already on the system?

You can change a contact's type either by the API or (safer) using the contact-editor extension.  Obviously once you fix the types the dedupe rules will work better for you - but I don't know of an easy way to search for dupes across types.


How to supply user input to custom visualizations with Civisualize I'd like to make a custom visualization with Civisualize but the visualization requires the user to first provide some input through several form elements. None of the visualizations that I see within Civisualize allow for any user input. Is this possible with Civisualize?

So the general dc.js way is that you fetch all the data needed, and do the filtering client side.

The usual way of doing the filtering is by clicking on the graphs, but you can as well have buttons on input filters, eg http://www.integritywatch.eu/

This being said, you could as well ajax fetch the data as csv or json, update the crossfilter and redraw the graphs. It might be easier to discuss about a specific example of what you want to do to work the pros and cons of each approach

X+


How long should a CiviCRM / Drupal upgrade take? We are running an outdated version of Civicrm (4.2.7) on Drupal 7 and working on upgrading to the newest version of Civi, 4.6x. We have been quoted a full forty hours by a consulting company for the completion of the project, but as the database is designed to be upgraded, this seems excessive.

If you have experience in upgrades and could offer thoughts on how long it should take as well as likelihood of errors, it will greatly help our planning. We have some custom fields, including some forms directly linked with our website, but not an excessive amount.

Thanks!

Based only what you have said so far 40 hours is excessive and 4 hours is more reasonable. But some further discovery or prior knowledge of the kind of customizations you have in your site might make 40 hours a reasonable quote. For example, needing to upgrade a few extensions so they are available for 4.6 and do some advanced theming might require 40 hours.

Our upgrade process involves:

Reviewing the standard native CiviCRM extensions and CMS modules/plugins used and ensuring they are available for the new CiviCRM version,
Finding and analyzing the native CiviCRM extension built just for the site as well as the custom CMS modules/plugins developed just for the site - they may need adjustment, perhaps significant,
Reviewing whether there is custom code and / or templates overriding CiviCRM or even using jQuery to adjust the DOM - this is often where some developer time is required during an upgrade,
Reviewing the theme for CiviCRM customizations and noting they will need to be checked post-upgrade - the more extensive the more risk of breakage during the upgrade,
On Drupal sites, checking for tweaks and customizations within the views using CiviCRM, or any non-views blocks etc that pull in CiviCRM data,
On multilingual or non-English sites, checking for the availability of translations for CiviCRM, native extensions, and CMs modules/plugins,
On a complex upgrade this is where we would provide the scope and estimate to the client.

In terms of the actual upgrade process, it involves:

Backing up the site and restoring it locally,
Running the upgrade process,
Addressing issues identified in 1 to 6 above,
QA of result,
Usually deploying site to staging for signoff by other JMA staff and client (skipped for simple upgrades)
After signoff, upgrading production site, usually by taking it offline during night in primary site timezones, doing the upgrade, deploying the changes from 9 to 11 above, and putting it back online.

To summarize the factors affecting the cost of upgrades:

In browser CiviCRM configuration changes like creating custom fields and profiles don't require extra work to upgrade.
More references to pages in CiviCRM from the CMS don't create extra work on upgrades.
The use of each additional native extension from the CiviCRM extensions directory and standard downloaded CMS module/plugin that interacts with CiviCRM slightly increases the risk of extra work.
The more code in extensions, modules/plugins, themes and especially custom PHP and Smarty template override files developed just for this site the more likely that developer time will be needed, and that more of it will be needed.


How can I include CiviCRM relationships to node creations screens? What I want to do is allow content authors to associate their news stories to their organisations.

I currently expose the organisations as an auto-complete field, however the target is for the author to not be able to select any organisation except their own.

I installed Entity Reference View as this appeared to be the way forward and created the following query for it

    SELECT civicrm_contact.id AS id, civicrm_contact.display_name AS civicrm_contact_display_name, civicrm_relationship.contact_id_b AS civicrm_relationship_contact_id_b, civicrm_relationship.relationship_type_id AS civicrm_relationship_relationship_type_id, civicrm_contact.organization_name AS civicrm_contact_organization_name
FROM
{civicrm_contact} civicrm_contact
LEFT JOIN {civicrm_relationship} civicrm_relationship ON civicrm_contact.id = civicrm_relationship.contact_id_a
INNER JOIN {field_data_field_test_member_station} field_data_field_test_member_station ON civicrm_relationship.id = field_data_field_test_member_station.field_test_member_station_target_id AND (field_data_field_test_member_station.entity_type = 'node' AND field_data_field_test_member_station.deleted = '0')
INNER JOIN {node} field_test_member_station_civicrm_relationship ON field_data_field_test_member_station.entity_id = field_test_member_station_civicrm_relationship.nid
WHERE (( (civicrm_relationship.relationship_type_id IN  ('17')) ))
LIMIT 10 OFFSET 0

As an Entity Reference AND as an Entity Reference View Widget, but neither worked (contact a is the author contact, b is the organisation, field_test_member..... is the organisation)

Am I heading into this the wrong way? Should I just build a webform and a node creation rule?

Your query seems a bit off to me. Focussing just on the portion of it that retrieves the employers of the logged in user wouldn't you have something like:
Select employer.id, employer.display_name from
civicrm_contact employer inner join
civicrm_relationship r on r.contact_id_b=employer.id
where r.contact_id_a=$current_contact_id limit 0,10;

(If your user isn't logged in, then I would just drop the where clause to populate the select widget with all employer orgs.)

IIRC the employer is the b contact for the relationship, not the a - might want to check that.


Are there any dangers to editing a membership type directly in the database? We have a membership type that is shared by relationship. However, after the membership type was created, we needed to share it by a new relationship type. I edited the membership type directly in the database to add the new relationship type (since the interface does not allow you to edit that after a membership is created). I simply added the new relationship_type_id and relationship_direction in the civicrm_membership_type table for the appropriate row.

It seems to have been working fine, but I am tracking down a bug now and wonder if this edit may be related. (The bug does not seem to happen on the demo site).

Here's the issue: when a relationship is disabled from the Organization or Individual's Relationship tab (ie. using the "more > Disable" command rather than editing the relationship, disabling, and saving) the membership which is shared by relationship is not disabled. When the relationship is rather edited by clicking Edit, unchecking Enabled, and saving, the membership disappears as expected. (In fact, if I do it the first way, then Edit and Save without changing anything, the membership disappears, too.)

UPDATE: I can actually reproduce this on the demo server with a non-Employee relationship so I think it may be a bug. I have submitted a bug ticket on JIRA.

Updating via DB should be fine, note that it won't update existing membership records to create inherited memberships.

Issue mentioned related to Disable might be a bug. I would suggest filing an issue in bug tracker if you are able to replicate it on the demo.


Why do field labels in Event Registration forms not display correctly I am using Civievent in version 4.6.10 with Wordpress 4.3.1. Have set up a training event and using a registration form. When I display the form in Test mode it works fine, but when in Live mode the field labels do not display - I just get the * for the required fields and the box to enter the data. Even stranger, when I look at the HTML code that is generated, it looks identical for this section - the label text is in the code for every field! If I try and submit the form without entering any data, I get the error messages as expected for the compulsory fields, but the field labels are then displayed, just for the compulsory fields! Any ideas anyone?

I have used both a preset profile and a customised profile to generate the form, with the same result.

This is specifically a problem with Bootstrap.  In its infinite wisdom, it has laid claim to the class "label" to display an element like it's a tag or label.  Unfortunately, you just have to add the following CSS, which overrides everything that Bootstrap adds:

.crm-container .label {
  display: inherit;
  padding: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  text-align: inherit;
  white-space: inherit;
  vertical-align: inherit;
  border-radius: inherit;
}

Big picture, this is a deep-seated problem with Bootstrap: the class names it uses are way too broad and common.  Other UI frameworks play much more nicely and prefix their magical classes with something that'll avoid this kind of namespace clash.


Image Upload URL Inconsistency My image upload url is [civicrm.files]/persist/contribute/

What is telling [civicrm.files] to go that url?

CiviCRM can have issues resolving symlinks if they exist in the path to CiviCRM codebase or resources (mentioned also here). Either avoid symlinks in your filesystem layout, or supply CiviCRM with the "real" path for the directory.


civivolunteer extension my civi version is 4.5.2
I wanted to activate civiVolunteer at administer. but there is no civivolunteer.
the civicontribution etc. is there.
how can I activate the civivolunteer?

Did you install the extension? It is not automatically shipped with CiviCRM. Check here to see how you can install extensions: http://wiki.civicrm.org/confluence/display/CRMDOC/Extensions


Can a user removed from smart group manually be added back automatically if criteria is satisfied? I have a requirement,
 where I need to Limit Scheduled Reminders to Only Members with Active and Grace Status(which is a smart group)
But
If I remove a user manually from
Member with Active And Grace Status Group,
will he stop getting Scheduled Reminder even though
 he/she is an Active Member or Grace Status Member, also is there a possibility when he pays again for membership, will smart group add him back or once removed from smart group manually, he/she will not be added at all

A person once removed(not deleted) from smart group won't be added again back automatically if the contact's updates his/her information or membership. So schedule reminder will exclude the contacts that are removed from smart group.


Multisite on CiviCRM with Drupal 7 I'm trying to install CiviCRM on my drupal multisite installation.
To create the multisite i used this tutorial. As I read the doc for the CiviCRM multisite installation, i understood that i had to use my default site DB. Did I understand it wrong, or is there a way to use separate DBs for CiviCRM multisites ?

Thanks in advance for your advices.

Yes, You can use the same db of drupal as well as use the separate db, civicrm gives the option to add another db.
If you want to use another db for civicrm then you have to create the db first and enter the name at time of installation , If you are first time installing civicrm use this doc .Civicrm use civicrm.settings.php to use the database connection,you can also check out that.
And as you said you have multisite installation you can placed the civicrm at /sites/all/modules to be accessible to all your drupal sites


Integrating CiviCRM in Wordpress I am new to CiviCRM and I have just installed it in WordPress. Am having problems with the integration. I would like users to register to become members, once they registered, they should be redirected to their profile page where they can view their dashboard which consists of their contributions and membership status. I am not able to achieve this at all. Secondly, when deploying a form, they don't show the labels. So if someone is filling a form, they won't know if the field is asking for email or phone number. I really need help with this;  I am volunteering for a charity organisation who is looking to put their membership structure in place desperately.

As ErikH said you do have several questions here. I would suggest taking a look at the following links to the User Guide. This will help clear up the process for you.

Defining Member Types: https://docs.civicrm.org/user/en/latest/membership/defining-memberships/
Membership Sign up: https://docs.civicrm.org/user/en/latest/membership/online-membership-sign-up/

You should also look at the following as these are involved in creating online member signups:

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

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

You may also need to utilize a few WordPress plugins to achieve what you are looking for. If you have more specific questions please post here.

Hope this helps!


How to extract views integration setting from the command line? Is there a way to output from the command line the views integration settings as listed in Administer > System Settings > CMS Database Integration? I need this as part of our upgrade script to automatically update settings.php (rewriting a php include file) every time a system upgrade is released.

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

I used this as inspiration to create the following script

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

echo $tablePrefixes;

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

cv scr <scriptname.php>

I tested this on CiviCRM 4.7.27


CiviCRM MailChimp Integration - sync with MailChimp fails hope you're well. New user of the MailChimp integration extension available here:
https://civicrm.org/extensions/mailchimp-civicrm-integration
We are attempting to integrate CiviCRM 5.29.0 on Wordpress and MailChimp, but we get this error when we perform the test sync (see image). As you can see (despite blurring out the info) it is able to pull MailChimp information but errors out with the 2nd error below it.

I found this page here that suggested the problem might be a lack of a Anonymous User user with webhook permissions in CiviCRM but couldn't find anything about explicitly adding webhook permissions to a role. Struggled to find in this page what exactly I need to permit in order to grant the right permissions.
How to make the callback URL from Mailchimp accessible from anonymous users in Wordpress?
Could someone point me in the right direction for a guide on how to set up CiviCRM 5.29.0 for this MailChimp integration?
Thanks everyone :)

Check the CiviCRM WordPress Permissions page, you need to enable Anonymous Role the permission to execute the Mailchimp Webhooks.


CiviCase Use Examples for Donor/Grant I was wondering if anyone would mind sharing some screen shots of your setup of CiviCase to track donor and/or grant interactions. The only samples I can seem to find are affiliated with more traditional case management. I have been reading a lot of different threads but I feel like I am missing a piece of the puzzle, and cannot seem to find a guide specific to these areas for setup. And image should help, unless you know where a guide specific to this can be found. Thanks!

This screenshot shows one variation but of course everyone's use case is a bit different


Error: Sorry an error occurred Supervised rule for Individual does not exist I am trying to add a new member. Each time I enter the name and email I get the error message: Sorry an error occurred
Supervised rule for Individual does not exist

Does anyone know what this means and how I can get around it.

Many thanks!

It sounds like you don't have a rule for Individuals that is set to be the supervised rule.

Here's the description of this rule type: "The 'Supervised' rule for each contact type is automatically used to check for possible duplicates when contacts are added or edited via the user interface. Supervised Rules should be configured with a broader definition of what constitutes a duplicate."

In my CMS (Drupal), I find the page to set these here: http://www.mydomain.com/civicrm/contact/deduperules?reset=1

You'll want to choose how a record is determined to be a duplicate when you're adding/editing someone. And then set that rule to be your supervised one.


Tag Contact Via Link in Email Is it possible to build a url to be included in an email sent from CiviCRM such that when the user clicks the link, they will automatically be tagged with a term in the system? Or maybe add an activity to their record? Basically I'm looking for a way to do a 1-click and done action to track some things in the system.

Forgot to mention I am using Drupal.

I would do this with a Drupal webform as follows:

Contact 1 - current user (if not logged in you'd need a checksum)
Contact 2 - the person to be tagged - set this as "existing contact" prepopulated from the url.
The tag will have to be preselected in the webform, so you'd have do clone this webform for each tag you want.
Add a tiny bit of javascript to the form to make it auto-submit.
On submit, redirect or display a success message.


Email address is missing on Thank You page where it says "An email confirmation with these payment instructions has been sent to" Noticed this on a couple of sites - not sure if this is a bug yet. When I tested on dmaster it fills correctly so perhaps this is a bug/regression that has been fixed between 4.7.27 and 4.7.30/31

This is a CiviCRM Core bug, reported here: https://lab.civicrm.org/dev/core/issues/173

It applies to pay later contributions when the email address is included in the profile.


Using HTML snippets for Forms no longer an option? For a long time I was using a CiviCRM form for signing up people to our mailing lists, and doing it using html for the form on a non-CiviCRM page.

I have a memory that there used to be an option in the CiviCRM Profile Settings page to export a html snippet you could cut and paste in this manner. This no longer seems to be there.

The problem is that it has stopped working of late - when I upgraded from 4.7.8 to 4.7.11, though I'm only noticing now. When I submit the form using the CiviCRM page

<CiviCRM Install>/?page=CiviCRM&q=civicrm%2Fprofile%2Fcreate&gid=15&reset=1

it works fine. But when I go to the non-CiviCRM page, which worked previously, it no longer works, and I get the following error:

  Sorry but we are not able to provide this at the moment.
  We can't load the requested web page. This page requires cookies to be enabled in your browser settings. Please check this setting and enable cookies (if they are not enabled). Then try again. If this error persists, contact the site administrator for assistance.Site Administrators: This error may indicate that users are accessing this page using a domain or URL other than the configured Base URL. EXAMPLE: Base URL is http://example.org, but some users are accessing the page via http://www.example.org or a domain alias like http://myotherexample.org.Error type: Could not find a valid session key.`

Any ideas? I've checked all the Resource URLS and they seem fine. I've checked the html code and, again, it works fine on the CiviCRM generated page but not on the static HTML page.

I'm using 4.7.12 on Wordpress 4.6.1.

Looking at the release notes for CiviCRM 4.7.11 there was a security issue that was fixed to do with these external snippets: https://civicrm.org/advisory/civi-sa-2016-17-manage-csrf-overrides-for-external-profile-forms

The release notes state, though, that existing installations should not have been affected by the update.

I would recommend that you look in the settings (Administer => System Settings => Misc) for the QF key security on profile forms.

If this setting has been enabled then it sounds like a bug - as the release notes suggest it should not have been enabled when upgrading an existing installation. If so then report it on the issue log and comment back here with a link =]

It is certainly worth reviewing that security issue though, which discusses the implications of using HTML snippets (and offers some preferable alternatives).


Recurring Paypal Contributions are showing (Pending Incomplete) We are on Civi 4.7.29 and Wordpress 4.9.4

Today I noticed about 20 transactions with the status Pending Incomplete.  They are all intended to be recurring.   I found out that we are getting notifications from Paypal on everyone of these transactions and some of these people confirmed the payment was a success on their end.  But it is not updating their memberships in Civi and it is not sending them a receipt from civi or recording it as a completed contribution.

Does anyone know where I should start with resolving this?  I did find several other posts related to this issue, but I did not see an answer with any of them.

We confirmed that payments go through properly with no issues, if it's a single/non-recurring payment.

thank you

***Edit****

I just noticed that when trying to make a recurring payment with my credit card instead of paypal I get this error message

DPRP is disabled. DPRP is disabled for this merchant.

Apparently Paypal charges extra for recurring functionality and you have not subscribed to the additional $30/mo DPRP service.

  DPRP is disabled. DPRP is disabled for this merchant.

https://www.paypal-community.com/t5/About-Business-Archive/quot-DPRP-is-disabled-for-this-merchant-quot-plz-help/m-p/991717#M14689

In your bounty comment you state:

  I am looking for a solution that will allow us to accept recurring payments through Civi.

In this case I would recommend you look into Stripe.com which provides these options without charging monthly fees. There is a CiviCRM-Stripe payment extension in active use and development.


Create menu for "Event registration" on Joomla site I have created a menu item "Event registration" on the backend of my Joomla site (localhost).  In civiCRM I created a template and created a new event.  On the front end it displays the below error message.

I will appreciate help.

Many thanks in advance

  @import url(/civicrm/administrator/components/com_civicrm/civicrm/css/civicrm.css); @import url(/civicrm/administrator/components/com_civicrm/civicrm/bower_components/jquery-ui/themes/smoothness/jquery-ui.min.css);    Sorry but we are not able to provide this at the moment. The page you requested is currently unavailable. Return to home page.    function toggle( element ) { var className = element.className; if ( className == 'crm-accordion-wrapper collapsed crm-fatal-error-details-block') { element.className = 'crm-accordion-wrapper crm-fatal-error-details-block'; } else { element.className = 'crm-accordion-wrapper collapsed crm-fatal-error-details-block'; } }

Thanks I managed to get this to work. I had to in the Joomla menu manager select even information page and enter the title of the event


Joomla PayPal standard IPN configuration - Pending (Incomplete Transaction) What should the IPN be for a Joomla site

Joomla 3.6.2
Civicrm 4.7.11

PayPal standard transactgion are sticking as pending.  The  documentation states that the IPN should just be http://www.domain.com/ however this no longer works.

CRM-18483 has been logged about this issue. However it appears to be down to the IPN settings.  What should they be????  Anyone got an example that is working?

http://domain/administrator/components/com_civicrm/civicrm/extern/ipn.php

...doesn't work.

Take a look at this thread:

Paypal payments - Pending (Incomplete Transaction)

Every time we upgrade CiviCRM I have to overwrite ipn.php with a version from 4.4 to get Paypal payments working again.


How to control which activity types show up in dropdown when creating new activity I cannot figure out why some activity types display in the dropdown when adding a new activity, and others do not. For example, on the demo site, I can see that there are many (16 in the screnshot) activity types linked to the "Contact" component:

But when I go to add an activity to a contact on the demo site, I only see 7 options:

What if I wanted to add an activity of a type that is not included in this list of 7? How did those 7 get to this dropdown list?

I'm desperate to figure this out.

Thank you!
Kristin

Only activity type that has component = Contact gets listed on the dropdown displayed on the contact summary page -> activities tab.

  Bulk Email also has component = contact, then why it is not shown listed on the dropdown?

Some activity types are reserved for system usage which has filter value set to 1 in civicrm_option_value table. These activity types are filtered from the dropdown list.

Email/SMS activity type will only be shown in the dropdown if the contact has a valid email/phone value stored in it.


Initial payment processor setup for PayPal I am trying to build a form for membership. How can I initially configure PayPal for payment processing?

Take a look at https://docs.civicrm.org/user/en/stable/contributions/payment-processors/ for setup on Payment Processors, including PayPal. You can setup the Payment Processor and then create a Contribution Page for membership.


CiviMobileAPI Extension vs APIv3 for mobile app integration We are building a react-native mobile app for our members and want to include some CiviCRM data and functionality in the app. Starting with some rudimentary data display eg:

How long you've been a member
Renewal date
Lifetime giving totals etc

Later we'll look to add some more of Civi's functionality within the app.
Does someone have any experience in doing something similar? Is it better to work from the open source CiviMobile API extension (not using the CiviMobile App) or from CiviCRM's native APIv3?
Thanks,

The CiviMobile API extension was developed specifically for the CiviMobile App. It's not a generic end point for other apps to use. If you were planning on using it in this way, then at the very least it would be wise to reach out to those developers to let them know that this is what you were doing, so they might re-consider implementing breaking changes.
CiviMobile is a closed source app. Open source back-end extension.
For comparison, CiviContact is open source app and open source back-end extension, https://civicrm.org/blog/justinfreeman/civicontact-for-android-and-ios-released-manage-civicrm-contacts-groups - and was developed as a platform, reference for building other CiviCRM mobile apps. Although, no one so far has taken up that challenge.
Both apps utilise a back-end extension to provide API end points for the app. That's a valid model to follow.
The question really should be whether or not CiviCRM APIv3 or CiviCRM APIv4 should be used. Given that at this point in time v4 does not have a REST end point implementation, any integration which uses REST must therefore use APIv3.
There's no problem in mixing and matching APIv3 and APIv4 calls. Since they both work fine and APIv3 is not going to be deprecated anytime soon.
Personally, I would use Flutter for any new app development. That's just my opinion - do you own research.


assigning task of writing thank-you letters to staff members In our NGO, we write thank you letters by hand.
When I build a search that contains all contacts which donated in the last 2 months, all I can do is send them a Thank-you email automatically. I would prefer matching these contacts (around 200) to staff members (around 20), which will then write thank you letters by hand.

Any ideas how this could be achieved?
Do I have to create a CiviRules-action?(https://docs.civicrm.org/civirules/en/latest/create-your-own-action/)

Thank you very much for any help!

CiviRules will indeed allow you to automatically create an activity when a new contribution is added. I assume there is an algorithm for which team member should be selected, I think you would need to create a customized action to make that happen!


How is the restful API secured? In order to access the API securely what do I need to do?

Is it as simple as using https and letting my CMS manage session authentication?

The REST API requires that you specify the site key and an API key.  Details can be found here.


Civi Administer Tab issues Anything I click on under administer tab goes to our home page...then list the administer topic?  So everything clicks to our home page then shows the topic?

If you have recently moved from one location to other or DB.
please follow the link which should fix the issue

http://wiki.civicrm.org/confluence/display/CRMDOC/Moving+an+Existing+Installation+to+a+New+Server+or+Location


Running 2 civicrm instances on 1 database I have one mySQL database and one Apache webserver. Can I still run 2 separate wordpress/Civicrm environments (like staging and production)?

Yes, you can have multiple Civi/CMS instances on the same server. Depending on your preference, when looking at your server, you will see something along the lines of one of the the following structure:

Per comment - editing my response to include database - unless you are setting up a multi-site instance of Civi, you would need a separate database for each CMS instance.


How to get CiviCRM Views to work in Drupal 8 with separate CiviCRM database When setting up a Drupal 8 with separate CiviCRM database, the Drupal views cannot read the CiviCRM database:

  SQLSTATE[42S02]: Base table or view not found: 1146 Table
  'xxx.civicrm_contact' doesn't exist: SELECT civicrm_contact.id AS id,
  civicrm_contact.organization_name AS civicrm_contact_organization_name
  FROM {civicrm_contact} civicrm_contact LIMIT 11 OFFSET 0; Array ( )

Checking the civicrm_views module I suppose there are some changes needed in the civicrm_views_views_data() function to connect to the right database for the CiviCRM data.

I also tried to create a view based on entities from the CiviCRM Entity module, but have the same error there.

Anybody got this working or has some hints how to do it?

I had the same problem today, so I looked in the source code.

In civicrm.install there's a function called _civicrm_get_db_config.  It's looking in the $databases array for an element with a key civicrm.  So I added this to settings.php:

$databases['civicrm']['default'] = array (
  'database' => 'civi_db_name',
  'username' => 'mysqluser',
  'password' => 'redacted',
  'prefix' => '',
  'host' => 'localhost',
  'port' => '3306',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
);

I then had to clear all caches before it worked, but work it does.


SOLVED: Can't run Upgrade script 4.7.21 (Drupal6) due to unknown column = civicrm_custom_group.is_public After installing the 4.7.21 upgrade my D6 site shows as upgraded and Civi appears to run correctly. However when I run the upgrade script I get error: Sorry but we are not able to provide this at the moment. DB Error: no such field""

If I delve into the error I find:
[nativecode=1054 ** Unknown column 'civicrm_custom_group.is_public' in 'field list']&quot;]

Can anyone guide me how to fix this?

We have had to create this field in the db in several sites we have upgraded. Not sure why the upgrade script is failing to do this correctly

Fuzion have provided a patch for this to avoid the problem for future folks doing upgrades


Can CiviRules assign an activity? I am successfully triggering on "Activity is added; Trigger for Activity Source" and updating the status of the activity. Now I need to assign the activity to the Source contact in the activity so they get the email notification with the activity details. Can't find an action to do that. I can send an email, but that lacks all the activity's details.

I do not think there is an action yet to do what you want it to do. It is not a complicated action though, so it should be relatively easy to add. Do you have any PHP skills? If so, it would be great if you could do a PR and add the action? There is documentation on how to create an action here: https://docs.civicrm.org/civirules/en/latest/create-your-own-action/