title: CiviCRM database

text:
# Question
Title: CiviCRM database
I had a previous install of CiviCRM that was connected to a database that had to be changed for Wordpress site. Now, setting up CiviCRM again, I discover (in civicrm.settings.php) CiviCRM and the website are using two different databases. The CiviCRM tables are not in the site database. Is that an issue going forward, can I use separate databases? I do want to use Member Sync, which seemed to have worked, but did not add the correct Contact Sub-Type. What will happen if I change the database in the civicrm.settings.php file?

# Answer
Hi @Scarlett using two different Database would be the best practice and you don't have to worry about it.

If your Member Sync is not updating the correct Contact Sub type then you need to check why it is not doing so. this has nothing to do with two different database

I hope this helps !!!

Thanks
> 2 votes

---
Tags: database
---


# Question
Title: Associate a tag with a contact where drupal tables have a prefix using civicrm 5.32.2 - drupal table prefix missing
CiviCRM 5.32.2 is missing the drupal 7.77 prefix when trying to access drupal tables that should have the drupal table prefix applied. How can I fix this? I am using Shoreditch theme, running with PHP 7.3.25, and MySQL server version 5.7.26

This is the error I get when trying to update an individual's record: Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred. DB Error: no such table Error Details Database Error Code: Table 'jandbweb\_jandb78.taxonomy\_vocabulary' doesn't exist, 1146 Additional Details:

Array ( \[callback\] =\> Array ( \[0\] =\> CRM\_Core\_Error \[1\] =\> handle )

```
[code] => -18
[message] => DB Error: no such table
[mode] => 16
[debug_info] => SELECT  t.tid as category_id, concat( v.name , '-', t.name)  as category_term_name
             FROM jandbweb_jandb78.taxonomy_term_data t
             JOIN jandbweb_jandb78.taxonomy_vocabulary v ON t.vid = v.vid
         GROUP BY t.tid [nativecode=1146 ** Table 'jandbweb_jandb78.taxonomy_vocabulary' doesn't exist]
[type] => DB_Error
[user_info] => SELECT  t.tid as category_id, concat( v.name , '-', t.name)  as category_term_name
             FROM jandbweb_jandb78.taxonomy_term_data t
             JOIN jandbweb_jandb78.taxonomy_vocabulary v ON t.vid = v.vid
         GROUP BY t.tid [nativecode=1146 ** Table 'jandbweb_jandb78.taxonomy_vocabulary' doesn't exist]
[to_string] => [db_error: message="DB Error: no such table" code=-18 mode=callback callback=CRM_Core_Error::handle prefix="" info="SELECT  t.tid as category_id, concat( v.name , '-', t.name)  as category_term_name
             FROM jandbweb_jandb78.taxonomy_term_data t
             JOIN jandbweb_jandb78.taxonomy_vocabulary v ON t.vid = v.vid
         GROUP BY t.tid [nativecode=1146 ** Table 'jandbweb_jandb78.taxonomy_vocabulary' doesn't exist]"]

```

)

Return to home page.

Fatal error: Uncaught CRM\_Core\_Exception: \[0: Transaction integrity error: Expected to find active frame thrown in /home/customer/www/jandbweb.jandbwebsite.com/public\_html/sites/all/modules/civicrm/Civi/Core/Transaction/Manager.php on line 93

The table being accessed should be 'jandbweb\_jandb78.Jbwtaxonomy\_vocabulary' and not 'jandbweb\_jandb78.taxonomy\_vocabulary'.

# Answer
> 0 votes
It looks like you're using the contenttokens extension? It doesn't look like it's been updated in a while but you'll need to file an issue with them. These lines need updating to include the prefix:

https://github.com/sgladstone/com.pogstone.contenttokens/blob/0a949241068afe9b34f49ecacfa0a5bf6a13facc/contenttokens.php#L575-L576

---
Tags: contacts, tags, drupal-7
---


# Question
Title: Problem with PayPal IPNs not going through
End of year and we are getting membership renewals. We've used PayPal for years no problem, but since Dec 1, the IPNs (instant purchase notifications) are not working correctly. The transactions are left in the 'Pending' state. I've gone into PayPal's IPN history page and manually resent a few IPNs and they they go through and are then marked as 'Completed' in CiviCRM. But due to bugs in the PayPal history page I can only resend for payments for the last few days. Why are they not going through the first time? This just started happening this month.

I found the patch line:

> $paypalParams\['notify\_url'\] = rawurldecode($paypalParams\['notify\_url'\]);

and added it to the CRM/Core/Payment/PayPalImpl.php file (I have a different file version from the github entry but found the spot anyway.) Then I made a contribution and the IPN worked, transaction marked as Completed in CiviCRM. Unfortunately there was an error someplace when returning to our site from PayPal's 'return to merchant' link.

Error:

> 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.

This is as far as I have gotten with this.

CiviCRM: 5.29.1 Wordpress: 5.5.3

# Answer
> 1 votes
Purportedly resolved in an update pushed by CiviCRM Admin Utilities 0.8 released on 20 November 2020 (https://lab.civicrm.org/dev/core/-/issues/1931). Payments have been closing for us fine since applying the patch - until today :-. We've had two transactions that wrote the incorrect IPN return URL and two right next to them that wrote the correct IPN return. Going to hit up the lab thread and see if others have run into this problem.

---
Tags: civicontribute, paypal
---


# Question
Title: 'Unknown path' error when trying to access New Mailing with version 4.6.2
It tries to go to "http://mycivicrmsite/civicrm/a" but it giving an "Unknown path" error. It doesn't seem to redirect to "http://mycivicrmsite/civicrm/a#/mailing/new" which seems to work.

We don't have any extensions installed.

# Answer
I resolved the issue. Apparently there is a conflict with the **Deslash** option in Drupal module **Global Redirect 7.x-1.5**. After unchecking the **Deslash** option, restarting the browser and clicking the New Mailing menu item, it works.

Please beware if you've installed module **Global Redirect 7.x-1.5**. The **Deslash** option is enabled as a default.

*Just a thought... Although there is no need to change 'civicrm/a/' to 'civicrm/a' in source file civicrm/CRM/Mailing/Controller/Send.php, should it be changed anyway? After looking at other CRM\_Utils\_System::url() calls in the module, I see that many other calls do not have '/' as the last character for parameter $path. But it seems the parameter $path has been set to 'civicrm/a/' in civicrm/CRM/Mailing/Controller/Send.php for quite a while.*
> 6 votes

# Answer
Safari on the MAC seems to get this error regardless of the Global Redirect Fix (which doesn't appear to work).

Using 4.6.3 Removing the trailing slash lines 56, 62, 65 and 71 of civicrm/CRM/Mailing/Controller/Send.php make this work for me on safari/mac. Someone also reported that it doesn't work on some versions of IE.
> 2 votes

# Answer
I'm having the same issue for the first time but, a year later than the folks above - I'm providing this info as further clarification of the issue with Safari Browser and this redirect inside CiviMail

Our site is at Drupal 7.52/Civi 4.7.13 and another site with same issue is at Drupal 7.50 and I'm not positive which civi version

"unknown path" error when trying to access New Mailing Only seems to occur with Safari on a mac (and on an iPhone)

Further clues: The url box at the top of the browser very quickly cycles through the following three urls when I choose "New Mailing"

1) my\_domain.com/civicrm/mailing/send?reset=1
2) my\_domain.com/civicrm/a/#/mailing/new
3) my\_domain.com/civicrm/a

On other browsers, the url's cycle through just the first two of these, and don't reach the third which is the thing that causes the "unknown path" error. This is happening on at least a couple of sites as I note above, and doesn't seem to be directly associated with Drupal or CiviCRM updates.

Perhaps there has been an update to Safari that's reawakening an error from a year ago? I'm on Safari Version 10.0.1 (11602.2.14.0.7)but I don't know how to tell when it was updated..

Per above, I tried changing 'civicrm/a/' to 'civicrm/a' in lines 53,59,62,68 of my ...sites/all/modules/civicrm/CRM/Mailing/Controller/Send.php file and it didn't change the error.
> 0 votes

# Answer
I just had this same issue using Safari 11.03 on MacOS 10.13.3

It transpired that when I turned off AVG antivirus's "Web Shield" all was well.
> 0 votes

# Answer
Four years after, still Safari + CiviMailing doesn't cope well ! I still have this issue. All right let's use FireFox.
> 0 votes

---
Tags: civimail
---


# Question
Title: Where is the Detailed Logging setting stored?
I am attempting to turn on detailed logging for a site (Administer -\> System Settings -\> Misc (Undelete, PDFs, Limits, Logging, Captcha, etc.), the Logging option. When I save the change, I'm getting a gateway timeout, and am working with the hosting company to resolve that.

In the meantime, where is that setting saved? I don't see a place in civicrm.settings.php nor in the civicrm\_setting table. But I suspect that's because No is the default.

How and where can I add that setting manually? So far, my Google Fu is failing me.

Thanks!

# Answer
> 1 votes
It's in civicrm\_setting but if it's never been turned on it won't be there. But also it's more than just a setting - you would need to rebuild the schema and triggers.

If you have cv installed you can do `cv ev "Civi::settings()->set('logging', 1); $s = new CRM_Logging_Schema(); $s->enableLogging();"` to do it from the command line manually.

---
Tags: civicrm.settings.php, logging, civicrm.settings, system-settings
---


# Question
Title: How can I setup ACL for user to modify only custom fields?
I would like to limit access of some CiviCRM users, so they can only **access contacts in certain smart groups**. Meanwhile, I would like them to be able to **edit Custom Fields**.

I created a separate drupal role for these users.

Now, if I keep the Permission **CiviCRM: edit all contacts**, the user can access all contacts and edit all fields.

If I remove Permission: **CiviCRM: edit all contacts** and allow access to specific groups in ACL, the user can access contacts in these groups, but can't edit any fields including custom fields. (It is not possible to edit any fields even if I enable ACL for all, authenticated or specific role users to be able to edit custom groups.)

CiviCRM 4.7.14 on Drupal.

# Answer
Your ACL allows to view and edit all custom fields sets. I guess you previously had **CiviCRM: view all contacts** to be able to see the contacts at all.

You still need to grant a view permission to access the contact or an edit permission to allow any modification to your desired set of contacts:

I'm not aware that you can grant permission to edit custom fields without permission to edit the contact while using the UI.
> 1 votes

# Answer
I was keen to find out whether i can specify a user, given a WP role, can be limited to just a group of users and also just specific custom field groups for this group of users. On my system (CIVICRM 5.21.2/WP 5.4.2) i can do this by not allowing access to all records and to all custom data at the WordPress Permission for this WP role. Then i separately added an ACL to allow the Role to just access the specific Group, and added another ACL to allow the same Role to just access the specific Custom Field Group. This worked out for me.
> 1 votes

---
Tags: permissions, acl
---


# Question
Title: Installing CIVICRM ver. 5.32.2 on Joomla
I am having trouble installing CIVICRM on my Joomla powered domain.
Here is my environment: System Information

* PHP Built On: Linux a2plcpnl0712.prod.iad2.secureserver.net 2.6.32-954.3.5.lve1.4.80.el6.x86\_64 #1 SMP Thu Sep 24 01:42:00 EDT 2020 x86\_64
* Database Type: mysql Database Version: 5.6.49-cll-lve
* Database Collation: latin1\_swedish\_ci Database Connection
* Collation: utf8mb4\_general\_ci
* PHP Version: 7.4.11
* Web Server: Apache
* WebServer to PHP Interface: litespeed
* Joomla! Version: Joomla! 3.9.23 Stable \[ Amani \] 24-November-2020 15:00 GMT
* Joomla! Platform Version: Joomla Platform 13.1.0 Stable \[ Curiosity \] 24-Apr-2013 00:00 GMT
* User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36

I tied installing the civicrm-5.32.2-joomla-alt.zip and the civicrm-5.32.2-joomla.zip builds, but after a while I receive the following:

"Service Unavailable The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Additionally, a 503 Service Unavailable error was encountered while trying to use an ErrorDocument to handle the request."

In file manager, the folders ~/administrators/components/com\_civicrm/ and ~/components/com\_civicrm and their subfolders are present. the folder ~/media/civicrm is not present. The database does not show any Civicrm tables.

Any ideas on what I may be doing wrong? Thank you in advance.

---

Thank you all for the answers. I have set up my test local environment with a new install of joomla 3.9.22 and was successful in installing Civicrm.

On the production environment, I downgraded to php 7.3 and applied the suggested patch to the joomla 3.9.23. After proceeding with the installation of civicrm, I am getting a different error message:

An error has occurred. 0 undefined extension class 'Smarty\_Internal\_Method\_Assign\_By\_Ref'

Does anyone know what went wrong and how to solve the issue?

# Answer
> 2 votes
Joomla version 3.9.23 introduced an issue: unzipping an install file with several zips inside itself won't work. This causes the behavior you describe. In the next version this issue will be solved. You solve the issue now by manually installing a patch made by Yootheme, which can be found here: https://yootheme.com/support/question/142357

---
Tags: joomla, installation
---


# Question
Title: Can't Install CiviCRM on Joomla! 3.9.23 mod_fcgid error
CiviCRM 5.32.2

Joomla! 3.9.23

Mysql 5.7.23

PHP 7.3.24

PHP Extensions installed

* PHP BCMath
* PHP Curl
* PHP DOM XML
* PHP Multibyte
* PHP Zip
* PHP INTL
* PHP SOAP

PHP Configuration

\- Set memory\_limit to 512mb \- safemode PHP directives are off. \- MAMP XCache - This is off.

I kick off the install and after about 5 to 10 min the system kicks the following error:

* \[error\] mod\_fcgid: read data timeout in 360 seconds

Any ideas on how to fix this?

# Answer
The timeout issue itself is caused by a new issue that is created in the latest joomla version itself (3.9.23). Joomla version 3.9.23 introduced an issue: unzipping an install file with several zips inside itself won't work. This causes the behavior you describe. In the next version this issue will be solved. You can solve the issue now by manually installing a patch made by Yootheme, which can be found here: https://yootheme.com/support/question/142357
> 2 votes

# Answer
To solve the timeout issue, I unzipped the archive in the admin folder then in the configure.php put a block comment from line 39 to line 59. Install was done in record time.

Steps taken

1. File Transfer

* On your server, create a folder in your Joomla instance under administrator/components called com\_civicrm.
* On your computer unzip your Joomla install package (CiviCRM-5.32.2-Joomla). go to CiviCRM-5.32.2-joomla\com\_civicrm\admin
* On your server copy all the files and folders in this directory to your Joomla instance under administrator/components/com\_civicrm.
* Unzip the civicrm.zip and it should create a fold called civiCRM under the com\_civicrm folder.

2. Configuration Scripting

* Edit the configure.php in the administrator/components/com\_civicrm folder on your server.
* Block comment (/\* at line 39 and \*/ at line 59) the unzip block of the script.

3. Run the Joomla install.

This is what worked for me and the install was much faster.
> 1 votes

---
Tags: joomla, installation
---


# Question
Title: Command are running manually, but cron is not running
I'm running CiviCRM 5.32.0 on WordPress 5.6 hosted by Hostinger.

1st step I test cv.phar = php /xzy/wp-content/plugins/civicrm/civicrm/bin/cv.phar api Job.process\_mailing --user=abcd --cwd=/xyz

2nd step I test a script using that command with the same result OK = bash civicron\_2.sh { "is\_error": 0, "version": 3, "count": 1, "id": "processed", "values": { "processed": 0 } }

3nd step, I created the cron rule in Hostinger panel (every 30 minutes) = 0,30 * * * * /usr/bin/php /xyz/abcd/civicron\_2.sh

But finaly CiviCRM UI says : "no cron job is running" and the only way I succed to run Job is manually on the CiviCRM UI.

I need advice to go further. BR hervé

# Answer
> 2 votes
In order to close this post, I'll explain the solution. There were 2 mistakes: 1/ the parametre cwd= (current working directory) was incorrect. 2/ the way I use UIHostinger for cron was incorect.

My solution is: `0,30 * * * * /usr/bin/php /home/u781989671/public_html/wp-content/plugins/civicrm/civicrm/bin/cv.phar api job.execute --user=myuser --cwd=/home/u781989671/public_html`

best regards, rv

---
Tags: cron, cron-job
---


title: How do I add extensions in drupal?

text:
# Question
Title: How do I add extensions in drupal?
How do I add not native extensions in Drupal, I was using WordPress where I know how to do it but recently moved over to Drupal.

# Answer
You can create a folder somewhere outside the main tree, so that when you upgrade core you don't overwrite your extensions, and then in civi under Admin - System Settings - Directories, you put the file path to that folder where it says "Extensions Directory".

If you already have some other extensions installed, they might have gone under sites/default/files/civicrm/ext, in which case you want to move those to your new folder too. You could put everything in sites/default/files/civicrm/ext, but it's easier to manage outside the tree. See also https://docs.civicrm.org/sysadmin/en/latest/customize/extensions/#enabling-extensions
> 2 votes

---
Tags: drupal, extension
---


title: Database Issue: DB Error: no such field

text:
# Question
Title: Database Issue: DB Error: no such field
There was a similar post recently about a similar issue but I'm not positive they are related. I am having issues when trying to add or work with any contact in the system. The error is:

DB Error: no such field

I am unable to add or search any contacts. When I can view a contact, I'm unable to add contributions, groups, etc (but can see their contact info. Interestingly enough, users can use the front-end to create a contact or to make a contribution.

The problem seems to have started when updating to either 5.32.1 or 5.32.2 I noticed it after upgrading to 5.32.2 but not sure if it existed prior to this.

Our system:

```
Civicrm: 5.32.2

Database Type   mysql
Database Version    5.5.5-10.3.27-MariaDB
Database Collation  utf8_general_ci
Database Connection Collation   utf8mb4_general_ci
PHP Version 7.3.25
Web Server  Apache
WebServer to PHP Interface  fpm-fcgi
Joomla! Version Joomla! 3.9.23 Stable

```

During debugging and Backtrace, I get the following: backTrace

```
#0 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/Error.php(148): CRM_Core_Error::backtrace()

#1 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/PEAR.php(921): CRM_Core_Error::handle(Object(DB_Error))

#2 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/DB.php(997): PEAR_Error->__construct("DB Error: no such field", -19, 16, (Array:2), "\nSELECT id, title, frontend_title, description, frontend_description, visibi...")

#3 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/PEAR.php(575): DB_Error->__construct(-19, 16, (Array:2), "\nSELECT id, title, frontend_title, description, frontend_description, visibi...")

#4 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/PEAR.php(223): PEAR->_raiseError(Object(DB_mysqli), NULL, -19, 16, (Array:2), "\nSELECT id, title, frontend_title, description, frontend_description, visibi...", "DB_Error", TRUE)

#5 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/DB/common.php(1925): PEAR->__call("raiseError", (Array:7))

#6 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/DB/mysqli.php(936): DB_common->raiseError(-19, NULL, NULL, "\nSELECT id, title, frontend_title, description, frontend_description, visibi...", "1054 ** Unknown column 'frontend_title' in 'field list'")

#7 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/DB/mysqli.php(406): DB_mysqli->mysqliRaiseError()

#8 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/DB/common.php(1231): DB_mysqli->simpleQuery("\nSELECT id, title, frontend_title, description, frontend_description, visibi...")

#9 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/DB/DataObject.php(2696): DB_common->query("\nSELECT id, title, frontend_title, description, frontend_description, visibi...")

#10 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/DB/DataObject.php(1829): DB_DataObject->_query("\nSELECT id, title, frontend_title, description, frontend_description, visibi...")

#11 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/DAO.php(457): DB_DataObject->query("\nSELECT id, title, frontend_title, description, frontend_description, visibi...")

#12 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/DAO.php(1564): CRM_Core_DAO->query("\nSELECT id, title, frontend_title, description, frontend_description, visibi...", TRUE)

#13 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Contact/BAO/Group.php(1072): CRM_Core_DAO::executeQuery("\nSELECT id, title, frontend_title, description, frontend_description, visibi...", (Array:1))

#14 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Contact/Form/Edit/TagsAndGroups.php(93): CRM_Contact_BAO_Group::getGroupsHierarchy((Array:27), NULL, "- ", FALSE, FALSE)

#15 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Contact/Form/Contact.php(801): CRM_Contact_Form_Edit_TagsAndGroups::buildQuickForm(Object(CRM_Contact_Form_Contact), 0, 3, FALSE, NULL, "Group(s)", "Tag(s)", NULL, "select")

#16 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/Form.php(630): CRM_Contact_Form_Contact->buildQuickForm()

#17 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/QuickForm/Action/Display.php(76): CRM_Core_Form->buildForm()

#18 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Contact_Form_Contact), "display")

#19 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contact_Form_Contact), "display")

#20 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/Controller.php(347): HTML_QuickForm_Page->handle("display")

#21 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Utils/Wrapper.php(98): CRM_Core_Controller->run()

#22 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/Invoke.php(285): CRM_Utils_Wrapper->run("CRM_Contact_Form_Contact", "New Contact", (Array:1))

#23 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/Invoke.php(68): CRM_Core_Invoke::runItem((Array:13))

#24 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:3))

#25 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm.php(121): CRM_Core_Invoke::invoke((Array:3))

#26 /home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm.php(40): civicrm_invoke()

#27 /home/ourdirectory/public_html/libraries/src/Component/ComponentHelper.php(402): require_once("/home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm.php")

#28 /home/ourdirectory/public_html/libraries/src/Component/ComponentHelper.php(377): Joomla\CMS\Component\ComponentHelper::executeComponent("/home/ourdirectory/public_html/administrator/components/com_civicrm/civicrm.php")

#29 /home/ourdirectory/public_html/libraries/src/Application/AdministratorApplication.php(101): Joomla\CMS\Component\ComponentHelper::renderComponent("com_civicrm")

#30 /home/ourdirectory/public_html/libraries/src/Application/AdministratorApplication.php(159): Joomla\CMS\Application\AdministratorApplication->dispatch()

#31 /home/ourdirectory/public_html/libraries/src/Application/CMSApplication.php(196): Joomla\CMS\Application\AdministratorApplication->doExecute()

#32 /home/ourdirectory/public_html/administrator/index.php(51): Joomla\CMS\Application\CMSApplication->execute()

#33 {main}

Database Error Code: Unknown column 'frontend_title' in 'field list', 1054
Additional Details:
Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => handle
        )

    [code] => -19
    [message] => DB Error: no such field
    [mode] => 16
    [debug_info] =>
SELECT id, title, frontend_title, description, frontend_description, visibility, parents, saved_search_id
FROM   civicrm_group
WHERE  id IN (28,6,20,3,41,31,42,32,30,34,35,39,23,17,26,5,36,27,9,29,15,12,25,2,1,24,8)
 ORDER BY title [nativecode=1054 ** Unknown column 'frontend_title' in 'field list']
    [type] => DB_Error
    [user_info] =>
SELECT id, title, frontend_title, description, frontend_description, visibility, parents, saved_search_id
FROM   civicrm_group
WHERE  id IN (28,6,20,3,41,31,42,32,30,34,35,39,23,17,26,5,36,27,9,29,15,12,25,2,1,24,8)
 ORDER BY title [nativecode=1054 ** Unknown column 'frontend_title' in 'field list']
    [to_string] => [db_error: message="DB Error: no such field" code=-19 mode=callback callback=CRM_Core_Error::handle prefix="" info="
SELECT id, title, frontend_title, description, frontend_description, visibility, parents, saved_search_id
FROM   civicrm_group
WHERE  id IN (28,6,20,3,41,31,42,32,30,34,35,39,23,17,26,5,36,27,9,29,15,12,25,2,1,24,8)
 ORDER BY title [nativecode=1054 ** Unknown column 'frontend_title' in 'field list']"]
)

```

I can basically see the issue is 'frontend\_title' but am not sure how to correct it (or what caused it). Any pointers in the correct direction would be extremely appreciated.

# Answer
The recommended way would be to restore from an earlier backup and then run the upgrade again. If you want to live on the edge:

1. Make a backup of your current database so you can at least get back to current.
2. In the database fool civi into thinking you have an old database from just before when this seems to have been a problem: `UPDATE civicrm_domain SET version='5.29.0';`
3. Visit http://example.org/civicrm/upgrade?reset=1
4. Try and see what happens.
> 0 votes

# Answer
The suggestion by Demerit worked. I was not aware but our most recent backup was corrupt. Following the "live on the edge" comment, I completed another back-up (not corrupt) and changed the version number. Then ran the update script and it upgraded properly.

Thank You Demerit for assisting with this!
> 2 votes

---
Tags: joomla, database
---


# Question
Title: How Can I send mailing with AWS SES API instead of SMTP?
I want to send mailing with the help of AWS SES API instead of SMTP. I am using CiviCRM 5.32.2 and drupal 7.

# Answer
This extension may be of interest, but it doesn't allow sending via API: https://github.com/mecachisenros/aws

I think you would need to write your own code to integrate with the SES API. But AWS works perfectly fine via SMTP.
> 2 votes

---
Tags: api, mailing, civicrm-home
---


# Question
Title: Creating extension with civix: How to use CRM dir?
I want to create an extension for CiviCRM that will add an extra column for appended documents inside the activities list of a Case View. That is, when users have appended a document while creating an activity, that document will not be shown in one column together with the `View`, `Edit` and `More` links, but in a separate column together with their filename, for a clearer view.

The changes I need to make contain six patches inside three PHP files, and one patch inside a template file. I used civix to create an extension skeleton. Then, it has been easy to make the adapted template file work by copying it into `sites/default/files/civicrm/ext/extensionname/templates/Case/Form/templatename.tpl`. The path where the original template lies is `sites/all/modules/civicrm/templates/CRM/Case/Form/`.

But now, I'm struggling with including the adapted PHP files. I know that hook functions exist and that I could try to find a suitable hook function for each of the six patches, but it seems a very complicated solution to me.

I wonder if there is a solution similar to the way templates can be included in extensions? For example, is there a way to put all the PHP files inside a folder structure like `sites/default/files/civicrm/ext/extensionname1/CRM/extensionname2/path/to/example/example.php`, and they will simply be called instead of their original CiviCRM "sister file"?

In this example, `extensionname1` stands for the name I gave to the extension while creating it with `civix generate:module` (here: `de.company.activities-column-for-documents`) and `extensionname2` stands for the extension's 'given name' from info.xml (here: `ActivitiesColumnForDocuments` when info.xml contains `<file>activities_column_for_documents</file>`).

I came up with this idea after reading https://docs.civicrm.org/dev/en/latest/extensions/structure/ where it sounds like you'd be able to do that, if you only follow the naming conventions (CRM\_Myextension\_...). Though, it didn't work, even though I renamed all my PHP files, e.g. from `Case.php` to `CRM_ActivitiesColumnForDocuments_Case.php`.

The only other related thread I could find was How to Create an extension? but I didn't find it helpful here.

Can I use the CRM directory that is auto-created by civix to easily store custom versions of existing CiviCRM PHP files? How? If not, what is the auto-created CRM directory for?

Any hints are appreciated :) If I can successfully create the extension, I will of course publish it here.

# Answer
Overriding core files was how we used to make changes until collectively we figured out that was storing up trouble for the future.

Another possibility is that if you think this is likely to be a small, useful improvement for most users of this aspect of CiviCRM then you could propose it as a change for core - go here and use the 'improvement' template. If that is agreed then submit your changes as a PR.
> 4 votes

# Answer
The simple answer to "Can I use the CRM directory that is auto-created by civix to **easily** store custom versions of existing CiviCRM PHP files?" is no, not *easily*.

While it can be made to work, if you just use a modified copy to replace the core file, then you have to keep your file in sync after every upgrade, which is **not** fun. So yes it takes extra work with a hook etc but then you don't have to keep updating your copy of the file. Also using modified copies of core files would make your extension ineligible for automatic distribution with civi if you ever wanted to do that.

In this specific case (pun intended) for the activity list, it maybe is a bit more difficult than it could be because of the mix of many technologies used for that table.
> 3 votes

---
Tags: extension, civix
---


# Question
Title: Help for developing an extension for SMS
We are trying to create a new extension for an SMS provider and after days of struggling, we're still not successful, even if a great part of the job is probably done.

We followed the documentation and got a lot of information out of the existing extensions (twilio, clickatel, ring central) and this was already really helpful.

The thing is that we are stuck and we would need logs or error message to better understand what's going on with the code.

How do developers usually work on a (new) extension? Should we use `cv` to try out the functions?

# Answer
You might want to start with https://docs.civicrm.org/dev/en/latest/ if you haven't seen that before. To try out API functions, I would encourage you to login to a civi instance and go to the menu beside Administer, ie Support \> Developer \> APIv3 (or preferrably APIv4 if it has what you want), then test things there. The same functionality is available on your iwn instance. Note especially the callback methods available under https://docs.civicrm.org/dev/en/latest/hooks/

There are CiviCRM logs available at sites/default/files/civicrm/ConfigAndLog/ but you may also need to look at your Apache and occasionally MySQL logs too. Welcome, and good luck.
> 2 votes

# Answer
Thanks to all of you who helped us creating our first extension. We've just published it on our Git account. Users in France can now send through a local and professional company.
> 1 votes

---
Tags: developer, sms
---


# Question
Title: Issues with Civi Member Sync and Groups Plugin
I have the latest CiviCRM and Wordpress installed. I've got the latest Groups plugin for Wordpress (https://wordpress.org/plugins/groups/), and the CiviCRM Wordpress Member Sync plugin (https://wordpress.org/plugins/civicrm-wp-member-sync/).

I am having the exact same problem as detailed by the user in this post. The issue being users seem to be only being placed in the default group and not in the group created and connected to the capability as defined in CWMS.

My desired flow is: CiviCRM Contribute form -\> Adds membership to Civi -\> User is synced -\> User is placed into Member Group 1.

Currently, all seems to be working except for the last step. The users seem to be only be placed in the default group.

Thanks so much for any help.

**Screenshots**

# Answer
As far as I can tell from your screenshots, Groups is either (1) not installed or (2) not configured. Here's what you should see:

Note the extra column which shows the Groups groups.
> 1 votes

---
Tags: wordpress, civimember, sync
---


# Question
Title: Why does my 'Delete Case' action in the case search report not work?
When I use the 'Find Cases' report (from the Case menu), and I select \[Delete Cases\] it does nothing. And it looks de different. Like this:

CiviCRM version 5.34.alpha1 on Drupal:

And besides that, the search part looked funny too: The search *from* and the *to* fields are visible.

In the JavaScript console I see the following message in red:

```
select2.min.js?qmiq9r:75 Uncaught query function not defined for Select2 custom_13_from

```

# Answer
> 2 votes
It has to do with an added custom field. See:

Its a range *and* an option list.

Workaround.

* Go to the custom field definition (it's somewhere on cases, for techies, you can find the id in the javascript error.
* Change the Field Input Type to *Single Line Input Field*
* Now *Search by Range* is visible. Uncheck it.
* Set the 'Field Input Type' back to the former value.
* And save.

The case report should by back to normal.

---
Tags: custom-fields, civicase, reports
---


# Question
Title: CiviContribute/CiviCRM overrides content entered into a custom field each time a donation is made
Hopefully I can explain this so it makes sense. :)

We have customers that have donation pages (and events) that they use custom fields with, but when someone completes the custom field once, it does show in the contact's profile. If the same person comes back and makes another contribution, but chooses a different option for the custom field, it overrides what they entered previously.

We work with a lot of nonprofits, so they have people making multiple donations at different times throughout the year (and sometimes monthly), but they need to have a record of each designation the donor selects every time they make a donation.

Is there a way to prevent the information in the custom field from being overridden each time someone donates with a different designation?

Any help would be greatly appreciated. :)

Hopefully it makes sense.

Let me know if you need any further information. :)

Thank You!

Nicole

# Answer
> 4 votes
It sounds like your custom fields are on the contact record. If you create custom fields on the contribution instead then you avoid the problem.

---
Tags: civicontribute, custom-fields, drupal-8, drupal-7
---


# Question
Title: Activating CiviCRM in Wordpress returns a fatal error, this is on windows10, all works until activation
Array and string offset access syntax with curly braces is no longer supported in C:\xampp\htdocs\testsite\wp-content\plugins\civicrm\civicrm\Civi\Core\Paths.php on line 203

CiviCRM Version 5.32.2 and WordPress 5.6

# Answer
> 2 votes
My assumption is that you are using PHP 7.4. Dat version does not support curly braces syntax. See this answer on stackexchange https://stackoverflow.com/questions/59158548/array-and-string-offset-access-syntax-with-curly-braces-is-deprecated . A downgrade to PHP 7.3 will help. That is also the highest supported version, see https://docs.civicrm.org/installation/en/latest/general/requirements/ .

Another option is to fix the issue and create a patch for it. A remark on the https://lab.civicrm.org/dev/core/-/issues/1496 will also help.

---
Tags: wordpress, plugin
---


# Question
Title: DB error in 'civicrm_group_roles' module
When I log in to my site and I have the `civicrm_group_roles` module enabled, I'm getting this generic error in the browser:

```
Error
The website encountered an unexpected error. Please try again later.

```

In the database log, I see this error message:

```
PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table
'singersin_drupal.singersin_combined.civicrm_group_roles_rules' doesn't exist:
SELECT r.name AS name, cgr.role_id AS role_id, cgr.group_id AS group_id FROM
{civicrm_group_roles_rules} cgr INNER JOIN {role} r ON r.rid=cgr.role_id; Array ( ) in
civicrm_group_roles_sync_roles() (line 821 of
/Users/ken/src/SIA/server275-site/sites/all/modules/civicrm/drupal/modules/civicrm_group_roles/civicrm_group_roles.module).

```

Note the table name `singersin_drupal.singersin_combined.civicrm_group_roles_rules` \- that's actually the **Drupal** database name, followed by the **CiviCRM** database name, followed by the table it's looking for. So I assume that somehow the `{civicrm_group_roles_rules}` token is getting filled in wrong when the site has different databases for Drupal and CiviCRM.

I can work around this by disabling the `civicrm_group_roles` module (`drush dis civicrm_group_roles`).

I'm using:

* CiviCRM 5.32.2
* Drupal 7.76

# Answer
Drupal 7.76 was only current for about a day, because of this bug (which affects other integrations, but hits CiviCRM especially hard). Upgrade to Drupal 7.77.
> 0 votes

---
Tags: drupal, database, modules, plugin, bug-reporting
---


# Question
Title: "Find Respondents to Reserve" - DB Error: syntax error
**System Info**

> * Wordpress ver. 5.5.3
> * SQL: 10.3.24-MariaDB-log-cll-lve - MariaDB Server
> * Server:
>
> > * Cloudlinux 3.10.0-962.3.2.lve1.5.38.el7.x86\_64
> > * Apache 2.4.46
> > * PHP 7.4

Issue is in **both** **Civi ver 5.31.0 and 5.29** \- persisted past update/upgrade.

Issue is that attempting to search for a respondent to reserve in civiCampaign creates a `DB Error: Syntax error`

The log states:

Nov 07 14:41:58 \[debug\] $backTrace = #0 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(205): CRM\_Core\_Error::backtrace("backTrace", TRUE)

```
#1 /path/to/site//wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(922): CRM_Core_Error::handle(Object(DB_Error))

#2 /path/to/site//wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB.php(997): PEAR_Error->__construct("DB Error: syntax error", -2, 16, (Array:2), "\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...")

#3 /path/to/site//wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(575): DB_Error->__construct(-2, 16, (Array:2), "\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...")

#4 /path/to/site//wp-content/plugins/civicrm/civicrm/vendor/pear/pear-core-minimal/src/PEAR.php(223): PEAR::_raiseError(Object(DB_mysqli), NULL, -2, 16, (Array:2), "\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...", "DB_Error", TRUE)

#5 /path/to/site//wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1928): PEAR->__call("raiseError", (Array:7))

#6 /path/to/site//wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(936): DB_common->raiseError(-2, NULL, NULL, "\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...", "1064 ** You have an error in your SQL syntax; check the manual that correspon...")

#7 /path/to/site//wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/mysqli.php(406): DB_mysqli->mysqliRaiseError()

#8 /path/to/site//wp-content/plugins/civicrm/civicrm/vendor/pear/db/DB/common.php(1234): DB_mysqli->simpleQuery("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...")

#9 /path/to/site//wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(2696): DB_common->query("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...")

#10 /path/to/site//wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(1829): DB_DataObject->_query("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...")

#11 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(457): DB_DataObject->query("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...")

#12 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(1563): CRM_Core_DAO->query("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...", TRUE)

#13 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/PrevNextCache/Sql.php(43): CRM_Core_DAO::executeQuery("\nINSERT INTO civicrm_prevnext_cache (cachekey, entity_id1, data)\n\n      SE...", (Array:1), FALSE)

#14 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Campaign/Selector/Search.php(274): CRM_Core_PrevNextCache_Sql->fillWithSql("civicrm search 2fedcb1a2b91b5337b15b83d001a4da5e9fdb2c76fbcc44ca3c12ce5d6dc9f...", "\n      SELECT %1, contact_a.id, contact_a.display_name\nFROM  FROM civicrm_c...", (Array:1))

#15 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Campaign/Selector/Search.php(244): CRM_Campaign_Selector_Search->buildPrevNextCache(Object(CRM_Utils_Sort))

#16 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/Selector/Controller.php(402): CRM_Campaign_Selector_Search->getRows(4, 0, 50, Object(CRM_Utils_Sort), 1, NULL)

#17 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/Selector/Controller.php(324): CRM_Core_Selector_Controller->getRows(Object(CRM_Core_Selector_Controller))

#18 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Campaign/Form/Search.php(287): CRM_Core_Selector_Controller->run()

#19 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(514): CRM_Campaign_Form_Search->postProcess()

#20 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Refresh.php(57): CRM_Core_Form->mainProcess()

#21 /path/to/site//wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Refresh->perform(Object(CRM_Campaign_Form_Search), "refresh")

#22 /path/to/site//wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Campaign_Form_Search), "refresh")

#23 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(347): HTML_QuickForm_Page->handle("refresh")

#24 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(312): CRM_Core_Controller->run((Array:3), NULL)

#25 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(68): CRM_Core_Invoke::runItem((Array:15))

#26 /path/to/site//wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:3))

#27 /path/to/site//wp-content/plugins/civicrm/civicrm.php(1644): CRM_Core_Invoke::invoke((Array:3))

#28 /path/to/site//wp-includes/class-wp-hook.php(287): CiviCRM_For_WordPress->invoke("")

#29 /path/to/site//wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters("", (Array:1))

#30 /path/to/site//wp-includes/plugin.php(478): WP_Hook->do_action((Array:1))

#31 /path/to/site//wp-admin/admin.php(259): do_action("toplevel_page_CiviCRM")

#32 {main}

```

# Answer
Welcome to CiviCRM Stack Exchange ... and congratulations on finding a bug!

I've created an issue and a Pull Request (PR). It is a very simple code change so if you can apply the change in the PR, test that it works for you and then leave a comment on the PR we should be able to get this resolved.
> 3 votes

# Answer
This error is still present in 5.32.2 but simple edit of one file as identified on https://github.com/civicrm/civicrm-core/pull/18948 temporarily fixes it
> 0 votes

---
Tags: wordpress, database, civicampaign, mariadb
---


# Question
Title: Rest API contribution get doesn't return display_name
in my Civicrm 5.31 on Wordpress 5.5 I'm trying to retrieve contribution data via Rest API, using the apiExplorer I get the code:

```
wp-content/plugins/civicrm/civicrm/extern/rest.php?entity=Contribution&action=get&api_key=userkey&key=sitekey&json={"sequential":1,"return":"contact_id,contribution_source,total_amount,fee_amount,trxn_id,invoice_number","receive_date":{">":"01/01/2021"}}

```

but if I try to add the display\_name it doesn't work. I try: contact\_id.display\_name and display\_name

# Answer
> 1 votes
You're in a bit of a tough spot, I'm afraid.

* The display name is attached to the contact, not the contribution.
* You would typically use an API join to handle this. However, joining to the Contact entity isn't supported in APIv3. It *is* supported in APIv4 (and in fact is one of the main reasons behind API4).
* However, API4 doesn't have a REST interface at present.

So you have two options:

* Make 2 REST calls;
* Try to use APIv3 chaining. This will let you make a single REST call, but does NOT reduce the number of API calls made internally. I've always found it to be more trouble than it's worth though, and I shudder to think about what that would look like over REST.

---
Tags: contacts, api, contributions
---


# Question
Title: What permissions are needed to renew memberships in back-end?
Up until sometime this spring 2020, non-admin users were able to manually renew memberships in the back-end.

Now that is not the case, see below. There is no edit or renew links.

For an admin it looks like this:

I assume a Civi upgrade effected this. The site is on 5.28.3.

We are using Activity Type ACL extension but that was added well prior to this issue coming up. Related member permissions I have for non-admin user level is:

* access\_civimember
* edit\_memberships
* add\_activities\_of\_type\_membership\_renewal
* edit\_activities\_of\_type\_membership\_renewal
* view\_activities\_of\_type\_membership\_renewal
* add\_activities\_of\_type\_membership\_signup
* edit\_activities\_of\_type\_membership\_signup
* view\_activities\_of\_type\_membership\_signup

# Answer
Just as you need *edit\_memberships* to renew in the back-end out of the box, if you have Enable Access Control by Financial Type turned on you must then grant the corresponding financial types permission(s) that are used for your membership(s). e.g. *edit\_contributions\_of\_type\_member\_dues*.
> 1 votes

---
Tags: civimember, renewals
---


# Question
Title: Civicase add timeline but activities not shown
Version:civicrm-5.33.1-wordpress

I tried to create a timeline hoping then when i add it, it will be shown in the activities tab. But apparently this is not working. Is there any setting i missed out?

# Answer
This looks like another casualty from the button UI changes. Have added https://lab.civicrm.org/dev/core/-/issues/2292. Can you try this small patch? https://github.com/civicrm/civicrm-core/pull/19356/files

The way that dropdown works is a bit weird - changing the value clicks a hidden button, and the way buttons submit their name to the form has changed, so it doesn't recognize it.
> 4 votes

---
Tags: civicase
---


# Question
Title: Can't translate year(s)word for recurring contributions
in CiviContribute Recurring Contributions I can't translate the *Year(s)* word. I don't find it in PoEdit files. Word replacing doesn't work. Any ideas?

# Answer
> 1 votes
This is a longstanding problem with no easy solution. See for example https://lab.civicrm.org/dev/translation/-/issues/53

---
Tags: civicontribute, recurring-contributions, translation
---


# Question
Title: Can't find Click the Continue button to proceed with the payment in translation string
I can't find *Click the Continue button to proceed with the payment.* from a Contribute form in the translation strings even if I can find other strings from that Contribute form. It's untranslated in my language and I'd like to fix it. The string changer does nothing. Any ideas?

# Answer
The string has html in it: `Click the <strong>Continue</strong> button to proceed with the payment`. e.g. https://lab.civicrm.org/dev/translation/-/blob/f0d769640f51dd1fe891963e4208bffd7625da91/po/it\_IT/common-base.po#L12259

If you're trying to use word replacements, you would need to include that when doing a word replacement, except there are some bugs in that when using html which are still being worked on (https://github.com/civicrm/civicrm-core/pull/15836)
> 2 votes

---
Tags: civicontribute, contribution-page, translation
---


# Question
Title: How can I find out what the problem is with my failing CiviCRM installation in WordPress?
I am attempting to install CiviCRM 5.33.1 on a fresh WordPress 5.6 install. Installation and activation go fine, and I get to the installer page at /wp-admin/options-general.php?page=civicrm-install.

The reason for this new install is that we need to partition CiviCRM to a subdomain on the same shared server as our main site. So I edited the CiviCRM Database setting to use the same DSN as is in our current civicrm.settings.php file, which looks like this:

```
mysql://[DB user]:[password]]@[server]:[port]/[DB name]

```

(The CiviCRM database is separate from the main WordPress database on our main site.)

Then I click Apply. The page redirects to /wp-admin/admin.php?page-CiviCRM&q-cificrm&reset=1, which has the title CiviCRM Installed, but then immediately displays the message *Sorry, you are not allowed to access this page*. That sounds like a permissions problem, but CiviCRM, nor the civicrm folder in wp-content/uploads, isn't installed, contrary to the title of the page.

I can't imagine that it's a problem with the Civi DB DSN, since I copied it directly from the current installation. Or could it be? But how can I figure out what the problem is?

Thanks!

# Answer
> 2 votes
I think you need to add an extra step or two. See https://docs.civicrm.org/sysadmin/en/latest/misc/switch-servers/ for more details

* Deactivate old version and backup a copy of the CiviCRM database from the old install
* Do your install in the new location and then activate with a new (empty database)
* Rename the old Civi database as temp, restore the old database, rename the restored database as the new Civi database (and set up user as it was before).
* Rename temp back to old Civi Database and reactivate old install so that it continues to work.
* If you have changed to a subdomain you may need to edit some other resource settings.

I think the reason you need to take this approach is because of the settings stored in the database. I did quite a lot of trial and error to work it out in my environment (some odd things happened with my hosted server and subdomains.

---
Tags: wordpress, installation
---


# Question
Title: unexpected extensions listed in system status
Anyone any idea why I have the following extensions listed in System Status as being up-to-date in addition to the ones I expect?

```
Contribution cancel actions: Version 1.0
Event Cart: Version 1.0
Financial ACLs: Version 1.0
Theme: Greenwich: Version 1.0
Sequential credit notes: Version 1.0

```

I haven't knowingly installed them. They aren't listed under System Settings \> Extensions and there is nothing for them in the uploads/civicrm/ext directory. I have cloned the site, updated from 5.26.2 to 5.33.1, updated UK Gift Aid extension and installed (and now uninstalled to check) Civirules extension. Before I re-run the process (to find out if I have done anything stupid by mistake, I wonder if anyone else has seen anything like this. Not event sure what some of them are.

I'm on WordPress.

# Answer
> 5 votes
A couple versions ago the concept of "hidden" extensions was introduced. The theory was it would allow for moving bits of code out of core and into extensions without anyone noticing any difference at first, and then at some point make them visible/optional. You'll find them in the civicrm\_extensions database table and also in the `ext` folder in the root of your civicrm folder.

So technically those are all still officially part of core right now, just the code has been rearranged.

---
Tags: extension
---


# Question
Title: Contribution Amount not displaying on Contact
I am on civi v5.25 with Wordpress v5.5.3. After adding manual off-line contributions (no credit card) each with a different financial type to a contact, none of the amounts display on the contact's contributions. I also recorded additional payments on a couple of the contributions, and still no amounts display. The contribution detail report does not show the amounts, only the number of contributions, and oddly it also shows the number of contributions beside the amount, as in: Amount $ (3). Similar result on the contribution summary report. I've reviewed the financial account and type config and cannot see anything obviously wrong. I am new to civi so this could be something simple. Thanks.

# Answer
As we were upgrading our civi software we learned that removing the values in the Monetary Value Display fixed the problem. It looks like petednz-fuzion was pointing me in the correct direction. After the software upgrade, the value shown in his screenshot below for Monetary Value Display (%!i) were automatically populated into my config, and this also worked. Thanks for your help!
> 3 votes

# Answer
This is not an Answer so i accept it will be down voted but can't add screenshots to a Comment.

Can you confirm if anyone has tweaked the settings at civicrm/admin/setting/localization?reset=1 in a way that may have messed up the currency/value?
> 1 votes

---
Tags: contacts, contributions, display
---


# Question
Title: Changing background and button colours on public facing pages (like contribution) in drupal
Is there and easy way to change the colours on contribution pages, the background shouldn't be blue?

Also the buttons are all white with white text till you wave your courser over them.

Is there a simple way I'm missing that doesn't require any knowledge of code?

# Answer
In Drupal you could add a new theme, for example 'Bootstrap', and add the module 'Themekey' to Drupal. Then in Themekey settings you can specify the Bootstrap theme to be used for a particular page. For example in the Themekey settings when 'drupal.node' = 'civicrm/something' then theme is 'Bootstrap'. No coding required!
> 1 votes

---
Tags: contribution-page
---


title: Import Contacts with dedupe rules

text:
# Question
Title: Import Contacts with dedupe rules
Recently I have encountered a problem related to the import of contacts and has to do with the dedupe rules.

When you import a list of contacts through a CSV file and select a dedupe rule, the CRM seems to ignore that rule and go directly to use the 'Unsupervised' rule.

For example, if there is a user with mail xxxxx@eeee.com and you use a 'General' rule with the Weight Threshold and the Weight of 10 in email but in the 'Unsupervised' rule the weight is 10 and the Weight Threshold is 15, the mail would be introduced in the CRM even if the rule that was chosen was the 'General'.

This behavior also happens in dmaster.

Is there any reason to prioritize the 'Unsupervised' rule to the rule you have chosen to perform the import?

EDIT

After more tests I have been able to conclude the following:

Importing data: Name, Last name and email and selecting the skip option.

Unsupervised rules:

```
A) Name (10) Last name (10) Treshold (30)
B) Email (10) Treshold (10)

```

General rules:

```
C) Name (10) Last name (10) Treshold (20)
D) Name (10) Last name (10) Mail (5) Treshold (25)

```

Then:

A + C = duplicate entry. If the general rule would have been applied correctly should not been duplicated, just skipped.

A + D = duplicate entry.

B + C = skip the entry (works fine)

B + D = skip the entry (works fine)

So as Jon G - Megaphone Tech said, the unsupervised dedupe rule always run, and from there, run your dedupe as well.

So the import first check the unsupervised rule and if the Treshold is greater than the weight of the fields always will import the contact independently the general rule you select.

# Answer
The import code's use of dedupe rules as of this writing (Civi 5.1) is...interesting.

The rules, which are defined in `CRM_Contact_Import_Parser_Contact::getPossibleContactMatches` involve short-circuiting the dedupe matching if the external identifier is a match. After that, it will ALSO run the unsupervised dedupe - and from there, run your dedupe as well.

While it'd be great to fix this (it's happening here) realistically it will take someone putting in resources (coding time or hiring a coder) to resolve this.

For now, the workaround is to modify your unsupervised rule.
> 6 votes

# Answer
Still having this issue in January 2021, with version 5.32.1 ***But the suggested workaround works fine.***

To summarize the long-winded explanation below: **When trying to import contacts using a dedupe rule of External ID Only, it will not work as expected.** ***An effective workaround is to temporarily replace the unsupervised rule (Email only) with the desired rule (External Id Only).*** Things work as expected, and afterward, unsupervised rule can be changed back to (Email only).

Our problem - an organization has been keeping a flat file in a spreadsheet for years, with columns for various meetings, volunteer dates, etc. So trying to import 2400 rows of data with about 50 columns of sparse data. Individual constituents can appear multiple times in the rows, and rows are in order by when the data was collected, making information in a particular row more recent (accurate) than in prior rows. The desired total information import for a contact would then be the latest information in each column, and where the latest row is empty for a given column, then the data in the next most recent row is used, and so on.

So we have made up a unique External ID for each row that effectively uniquely identifies each individual. Since we already have contacts being generated by program registrations through CiviEvent, we want to have the info in the system (e.g. email address - this latest piece of data is presumed to be more accurate than earlier transactions with this person) be kept, but have any blank fields filled in from the most recent row for that contact, (i.e. the "fill" option in contact import), etc. until there are no more rows for that contact.

Our import spreadsheet is in ascending order of External ID, and then secondarily in descending order of the order that was in the original spreadsheet. Thus, for e.g. External ID 24, there might be three rows (e.g. 31-33) of data for that individual, and so the import spreadsheet has ID 24 in three rows, which in the import spreadsheet are in the order of 33, 32, 31. That is, for a given External ID, the most recent data is encountered in the import spreadsheet first, then the second most recent second, etc.

So we set up a dedupe rule "External ID only" and use it with the "fill" option. We presumed that the data in the system (where we had manually added the correct external id) would prevail, augmented by any columns in 33, then 32, then 31, where only the first (latest) information would be retained.

**We were then surprised that the import didn't work, and only a few of the contacts were being imported with a test file of the first 100 rows**. Finding this issue here on Stack Exchange, we realized we were being affected by something similar (or the same - we haven't looked at the code as suggested).

**We used the workaround suggested; changed the unsupervised rule** (email only) to general, created a new rule (External ID only) and made it the unsupervised rule, then did our import. It works exactly as expected. After the big import is completed, we will change the unsupervised rule back to email only (so that people signing up for events won't all result in duplicate contacts, etc.)
> 1 votes

# Answer
Possibly related is that when Skip is selected (the default option) Contact ID is not shown as a match possibility. Contact ID does show when Fill or Update or No Dedupe is selected. This seems like a bug. (When was Fill added to the options? did that cause regression?)
> 0 votes

---
Tags: import, duplicate-contacts
---


# Question
Title: How often does the Status Report expect Cron to run?
I am on CiviCRM 5.33.1. The system Status Report gives warnings like this, taken about 90 minutes later at 12:26. Cron is deliberately set to run slowly since this is a development system. How often does one need to run cron to avoid this message - or is there a bug somewhere?

# Answer
> 0 votes
It expects it at least once an hour. See https://github.com/civicrm/civicrm-core/blob/5.33.0/CRM/Utils/Check/Component/Env.php#L317

---
Tags: cron, system-status
---


# Question
Title: database error when finishing update to 5.32
I'm running CiviCRM in Wordpress 5.6

I tried upgrading from CiviCRM 5.21 to 5.32 following this process: https://docs.civicrm.org/sysadmin/en/latest/upgrade/wordpress/

Now, the last step is visiting the update page, but there I get this error message:

```
Sorry, due to an error, we are unable to fulfill your request at the moment. You may want to contact your administrator or service provider with more details about what action you were performing when this occurred.
DB Error: unknown error
 Fehlerbeschreibung
Datenbank-Errorcode: You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable), 1419
Zusätzliche Details:
Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => handle
        )

    [code] => -1
    [message] => DB Error: unknown error
    [mode] => 16
    [debug_info] => CREATE TRIGGER civicrm_domain_trigger BEFORE INSERT ON civicrm_domain FOR EACH ROW BEGIN END [nativecode=1419 ** You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)]
    [type] => DB_Error
    [user_info] => CREATE TRIGGER civicrm_domain_trigger BEFORE INSERT ON civicrm_domain FOR EACH ROW BEGIN END [nativecode=1419 ** You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)]
    [to_string] => [db_error: message="DB Error: unknown error" code=-1 mode=callback callback=CRM_Core_Error::handle prefix="" info="CREATE TRIGGER civicrm_domain_trigger BEFORE INSERT ON civicrm_domain FOR EACH ROW BEGIN END [nativecode=1419 ** You do not have the SUPER privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)]"]
)

```

What could I do next? System Status says

```
Database Upgrade Required
New codebase version detected. You must visit upgrade screen to upgrade the database.

```

thanks, geb

# Answer
> 2 votes
Mysql has a feature called binary logging. You have it turned on, so either:

(a) turn it off, OR

(b) the mysql user needs to have the SUPER privilege, OR

(c) you need to set the mysql configuration variable log\_bin\_trust\_function\_creators.

See https://docs.civicrm.org/installation/en/latest/general/requirements/#binary-logging

You may need to ask your hosting provider what they will allow.

# Answer
> 2 votes
The administrator disabled gssapi on the server, after that the update went smoothly, I have no idea why.

---
Tags: wordpress, database, upgrade
---


# Question
Title: How to know if Smarty is really activated on WordPress?
On WP 5.6 / CiviCRM 5.32 we can't succeed to send HTML e-mails using css in `<style>` and `{literal}` (see this post) knowing that we succeed in sending html templates with in-line css.

Smarty is set on '1' in civicrm.settings.php but my question is if smarty is "really" activated and if there's a way to check this parameter.

```
* Enable this constant, if you want to send your email through the smarty
 * templating engine(allows you to do conditional and more complex logic)
 *
 */
if (!defined('CIVICRM_MAIL_SMARTY')) {
  define( 'CIVICRM_MAIL_SMARTY', 1 );
}

```

Any idea?

# Answer
easy answer indeed : send an e-mail with this code

```
<p>{$smarty.now|date_format}</p>
<p>{$smarty.version}</p>

```

You should get something like:

> Jan 14, 2021
>
> 2.6.31
> 0 votes

---
Tags: smarty
---


# Question
Title: Problems with clean install of Civi 5.33.1 on Wordpress
This is a bit long, but I think the background is important. I am in the process of upgrading from Civi 5.26.2 to 5.33.1 and need to understand whether I have the right environment.

I cloned my 5.26.2 live server to a test server and upgraded to 5.33.1. All looked good after a few errors on the way from me. Next I wanted to produce a new test server from my live server as a direct clone of 5.33.1, which involves a install of 5.33.1 and this fell over to the extent that even Wordpress was inaccessible.

I did find that I could install 5.33.1 on the

I tried a clean install of WordPress (5.6) and Civi 5.33.1 and got exactly the same problem. I did find that I could "clean" install of by installing 5.26.2 and upgrading.

So I am now worried that there may be something wrong with my upgraded live server that my testing didn't show that will come and bite me later when its too late to revert. One worry is that I have MySQL 5.6 and can't upgrade to 5.7 as I am on a shared server and have to wait for hosting service to upgrade. The warning message in the System Status says MySQL 5.7 is needed for Civi 5.34+. The error also says this, but I'm sure that's not in response to this particular error. The release notes for Civi 5.32 (I can't see any upgrade notes for 5.33) say MySQL 5.6 is OK but MySQL 5.7+ needed for 5.34. The overall minimum requirements from the download page say MySQL 5.7.5 and maybe problems with 5.6. So not consistent.

When I do the install I get

```
Fatal error: Uncaught Civi\Setup\Exception\SqlException: Cannot execute CREATE TABLE `civicrm_extension` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'Local Extension ID', `type` varchar(8) NOT NULL , `full_name` varchar(255) NOT NULL COMMENT 'Fully qualified extension name', `name` varchar(255) COMMENT 'Short name', `label` varchar(255) COMMENT 'Short, printable name', `file` varchar(255) COMMENT 'Primary PHP file', `schema_version` varchar(63) COMMENT 'Revision code of the database schema; the format is module-defined', `is_active` tinyint DEFAULT 1 COMMENT 'Is this extension active?' , PRIMARY KEY (`id`) , UNIQUE INDEX `UI_extension_full_name`( full_name ) , INDEX `UI_extension_name`( name ) ) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC: Specified key was too long; max key length is 767 bytes in /home/coma6771/public_html/testcrm/wp-content/plugins/civicrm/ in /home/coma6771/public_html/testcrm/wp-content/plugins/civicrm/civicrm/setup/src/Setup/DbUtil.php on line 204

There has been a critical error on this website. Please check your site admin email inbox for instructions.

```

And then when I can't access WordPress at all I get

```
Initialization Error

Array
(
    [callback] => Array
        (
            [0] => CRM_Core_Error
            [1] => simpleHandler
        )

    [code] => -18
    [message] => DB Error: no such table
    [mode] => 16
    [debug_info] => SELECT id, name, value, domain_id, contact_id, is_domain, component_id, created_date, created_id
FROM civicrm_setting
WHERE (domain_id = 1) AND (is_domain = 1)
 [nativecode=1146 ** Table 'coma6771_wp578.civicrm_setting' doesn't exist]
    [type] => DB_Error
    [user_info] => SELECT id, name, value, domain_id, contact_id, is_domain, component_id, created_date, created_id
FROM civicrm_setting
WHERE (domain_id = 1) AND (is_domain = 1)
 [nativecode=1146 ** Table 'coma6771_wp578.civicrm_setting' doesn't exist]
    [to_string] => [db_error: message="DB Error: no such table" code=-18 mode=callback callback=CRM_Core_Error::simpleHandler prefix="" info="SELECT id, name, value, domain_id, contact_id, is_domain, component_id, created_date, created_id
FROM civicrm_setting
WHERE (domain_id = 1) AND (is_domain = 1)
 [nativecode=1146 ** Table 'coma6771_wp578.civicrm_setting' doesn't exist]"]
)

Warning: Invalid argument supplied for foreach() in /home/coma6771/public_html/testcrm/wp-content/plugins/civicrm/civicrm/Civi/Core/SettingsBag.php on line 354

To prepare for CiviCRM v5.34+, please upgrade MySQL. The recommended version will be MySQL v5.7+ or MariaDB v10.1+.

```

# Answer
I think your missing some settings in your mysql configuration?

```
[mysqld]
innodb_large_prefix=true
innodb_file_format=barracuda
innodb_file_per_table=true

```

Taken from https://docs.civicrm.org/installation/en/latest/general/requirements/#mysql-configuration

I'm not 100% sure they will cure your issue but from how the storage engine/row lengths work in MySQL its a strong possibility they are related.
> 1 votes

---
Tags: wordpress, install
---


# Question
Title: How to alert an admin that a credit card used for recurring payments is coming up to the Expiry Date
I expect the answers to this will depend on the type of payment processor. In this case it is Authorize.net.

My research has found

all of which seem to be focussed on 'tokens' which means I don't think it helps this scenario.

One thought has been if we could at least copy the CC Expiry Date data in to another field that gets stored on the Contribution, though a much better solution would be to make that date the Scheduled Date of an Activity.

Any proven solutions out there?

One suggestions via 'chat' has been to see if auth.net are offering the 'account updater' service.

This seems the most recent discussion on this which implies there is no timeline for providing this.

In an earlier thread they talked about a new "ARBGetSubscriptionLIstRequest API method to get a list of subscriptions with cards expiring this month" but don't yet know if ARB is something that is available to civi users or not.

# Answer
You could try using our Expired Credit Cards extension: https://civicrm.org/extensions/expiredcreditcards https://github.com/agileware/au.com.agileware.expiredcreditcards

> This is a CiviCRM extension that automatically creates a new Activity, Credit Card Expired based on the Credit Card Expiry Date for a stored credit card token. The Activity Date for the Activity is set to the 1st day of the month after the Credit Card Expiry Date. The Credit Card Expired, Activity can then be used to set up Scheduled Reminders to notify the Contact that their credit card is about to expire or has expired.
> 1 votes

---
Tags: payment-processor, authorize.net, recurring-contributions
---


# Question
Title: case details field not available through UI
Is it true that the Case Details field can be populated, but cannot be seen through the UI in CiviCRM?

This seems odd - if it's true I'll open an issue in gitlab, but wanted to check in with the community first.

It seems like it can be pulled into a view or webform, but not viewed in Civi!

# Answer
> 1 votes
It's initially populated with the details of the open case activity and depending on your philosophy should or shouldn't be linked with the open case activity. In the compucorp version of civicase you can see/edit it.

---
Tags: civicase
---


# Question
Title: Summary Fields triggers settings not enabled
On the extensions admin screen I see

I tried following this solution but rebuilding triggers had no effect.

How do I get the triggers to be enabled? The cron job *Call SumFields.Gendata API* says it is successful and runs every hour.

> Parameters parsed (and passed to API method): a:1:{s:7:"version";i:3;}
>
> Full message: Finished execution of Call SumFields.Gendata API with result: Success (a:1:{i:0;s:89:"Original Status: scheduled:2020-05-04 15:33:23, New Status: scheduled:2020-05-04 15:37:48";})

That is the only cron job I see.

# Answer
> 1 votes
Sorry for the slow response - I am just now seeing this question.

The status *should* be: "Setting changes were saved on 2020-05-04, data calculation will be performed on every cron run." I'm not sure why that confusing message is displayed instead. Do you have the summary fields cron job enabled? If not, that could be the problem. When the summary fields cron job runs, it should create the triggers and calculate as needed.

For testing, you could also try updating the settings manually. In other words, where it says "When should these changes be applied?" - select "When I submit this form". Then click the save button.

If the status still says the triggers are not created, trying de-selecting one of the fields in the configuration and saving. Then, re-select and save again (summary fields pays attention to whether there are any changes in the list of selected fields and will only update the triggers if there is a change).

---
Tags: summaryfields, trigger
---


# Question
Title: Utterly useless and unhelpful error message on attempting upgrade to 5.33.1
I have a Wordpress dev site that we want to bring live with lots of new exciting content. The CiviCRM is out of date so I make a staging site and attempt to upgrade that to 5.33.1 from 5.32.2 so sadly the comment below, whilst very welcome and informative, does not take me any closer to a solution.

On entering the magic URL

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

```

(with example.org corrected of course and using https:)
I get the utterly useless and unhelpful error msg

**Sorry, you are not allowed to access this page.**

I have full admin rights and am left wondering what went wrong and why. Meanwhile I am under pressure to deliver the shiny new content in a secure manner.

all my links are https - what other security issues are there?

Am I better off redoing the site in Drupal as the WordPress is obviously not the focus of the CiviCRM devs? Will I get less hassle every time I need to upgrade?

# Answer
> 1 votes
It sounds like this is the url change that happened in 5.26. If you're upgrading from before 5.26 see https://civicrm.org/blog/kcristiano/civicrm-526-and-wordpress-important-notice

---
Tags: wordpress, upgrade, errorhandling
---


# Question
Title: Is it possible to have a user that's only capability is to work with Mosaico. Specifically to Create/modify templates
I'm a one man show and this is my first excursion into setting ACLs. I have a volunteer that wants to work with me on creating & editing Mosaico email templates. At some point they may also be granted priv to send mailings. I've gone through the process of creating ACLs but, they don't seem to have any way to give someone just that 'Mosaico' privilege. Is this possible? Thanks in advance!

# Answer
Unfortunately there is no single Mosaico privilege. You would achieve what you want using a combination of CMS permissions and CiviCRM ACL. I would do the following:

1. Create a special account for this volunteer, that they will use just for creating the the templates.
2. Create ACL so that the volunteer account has access to only one group of contacts, a testing group, where you will have a single contact. This is just for them being able to select a group when they want to create a new mailing ( this stem is option, i.e. if you want them creating the mailing and preparing everything for you to review and then just send it to the real group if you are satisfied. (If you want them just to edit templates Mosaico then this step isn't necessary)
3. Subtract all the unnecessary CMS permissions. I am not sure which permissions would that be, since I don't have a WP installation (I am on Drupal). You will want that user to have:
    * backend access
    * access to uploaded files
    * CiviMail access

Additionally, you can use the navigation menu settings (Administer -\> Customize Data and Screens -\> Navigation Menu) to add a permission requirement for any menu entry, effectively hiding any option you wouldn't like them to see in the menus.
> 4 votes

---
Tags: acl, mosaico, message-templates
---


# Question
Title: What is the best option to merge duplicated membership?
We have some members using similar names to register a membership at different years. What is the best way to merge their membership? Thank you.

# Answer
> 2 votes
I would suggest you start by reading the section in the User Guide on Deduping and merging contacts if you haven't done so already.

As to identifying the contacts that need to be merged, this really depends on what information you have on record. Finding contacts with duplicate email addresses is often a good place to start. Or look for duplicate postal addresses if you have that. If you only have names it will be a bit more tricky. You can use the 'length' in the dedupe rule to specify how many letters need to match. This may require trial and error to get this right for your data. Setting the 'length' too high may miss duplicates but setting it too low may generate too many duplicates.

---
Tags: civimember, duplicate-contacts
---


title: QR code inclusion in Mass-mailings

text:
# Question
Title: QR code inclusion in Mass-mailings
I wish to include a personalised QR-code in the Mass Mail for people in the Grace list, to facilitate their payment, which in Sweden can be done by the Swish function: use your phone, read/scan the QR code, key in your PIN, and the payment is done.

The problem I meet is to understand how I can invoke the result (a unique personalised QR png-file) of an API-request (to the Swish company) in the flow of text in the mass-mail message.

Has anybody done this before? Can php be invoked or Python?

Claes

# Answer
It sounds like you would want to create a custom token. See https://docs.civicrm.org/dev/en/latest/hooks/hook\_civicrm\_tokens/

So for the value of the token you would need to do the Swish api call and then use the result.
> 4 votes

---
Tags: civimail
---


# Question
Title: How can I fix broken clickthrough URLs in Mosaico emails?
I've just started in on an issue with a D8 site, currently running Civi 5.25 and Mosaico 2.5.

Emails sent using Mosaico with clickthrough tracking contain a mix of correct and incorrect URLs. If I add a URL to an image that has been placed in Mosaico, then that URLs get correctly converted to something like https://example.org/libraries/civicrm/extern/url.php?u=xxx&qid=yyy Embedding a URL into text in the body of the email, and/or using a button with a URL, they get converted to an incorrect link, of the form https://example.org/vendor/civicrm/civicrm-core/extern/url.php?u=xxx&qid=yyy \- and clearly these links lead only to 404s.

If I construct a comparable email using the 'traditional' mailer then the resulting trackable URLs are all of the correct form.

So it looks like Mosaico is doing something weird in terms of constructing the paths for some, but not all trackable URLs.

I've looked at my settings for Directories and Resource URLs, and also looked at civicrm.settings.php and nothing is jumping out at me as being wrong.

I'm not too familiar with D8/Civi, and neither do I know much of the history of the site, other than that I've just updated Mosaico from 2.3x to 2.5 in an unsuccessful effort to resolve this issue.

Where is Mosaico getting the path data from? Why is it constructing some URLs that are fine, but others that are broken? Any clues gratefully received.

# Answer
> 5 votes
Drupal 8's architecture is different from most, and you probably know that there are two copies of some files - one in `libraries` and one in `vendor`. My guess is that Mosaico is getting the path to `url.php` through two different functions that give different results.

Open up your `civicrm.settings.php` and find the line that has `CIVICRM_UF_BASEURL` in it, and paste these three lines anywhere below that:

```
$civicrm_setting['URL Preferences']['userFrameworkResourceURL'] = CIVICRM_UF_BASEURL . '/libraries/civicrm/';
$civicrm_paths['civicrm.root']['url'] = CIVICRM_UF_BASEURL . '/libraries/civicrm/';
$civicrm_setting['domain']['userFrameworkResourceURL'] = CIVICRM_UF_BASEURL . '/libraries/civicrm/';

```

This should hopefully force Civi to always return the `libraries` folder when constructing URLs to the `extern` subfolder.

**EDIT**: Today I was troubleshooting a site that went from using the Roundearth install method to the civicrm-asset-plugin method, and I had to comment out these lines to get the site to work. I suspect Mosaico will be fine without these lines now that I've completely converted.

---
Tags: mosaico, click-through
---


# Question
Title: How to save email adresses having weird, rare format?
One of our contacts has a weird, rare email format:

```
name-@web.de

```

I did not know, that having a `-` in front of `@` is even possible. It is the correct adress and the adress reaches its owner. Regardless of how clever it is, having such an adress, I do have the problem: I cannot save it in the contact field. An error message: invalid email adress appears.

**Does anybody know how to force civicrm to accept the weird email format?**

---

using:

* CiviCRM 5.31.0.

# Answer
> 1 votes
Looks like the email validation inside CiviCRM does not like that pattern. If it is a valid email address that validation would have to be changed. You can do that yourself with a PR (https://docs.civicrm.org/dev/en/latest/core/contributing/) or at least raise it as an issue (https://docs.civicrm.org/dev/en/latest/tools/issue-tracking/#guidelines). Thanks!

---
Tags: contacts, email, contact-summary-editor
---


# Question
Title: Are there Spreadsheets (samples) with Google Apps script to work with CiviCRM?
Has anyone heard of some CiviCRM contact or data import tools made with Google Spreadsheets / Google Apps Scripts that can be customized for specific use?

I do a lot of various semi-automatic data processing in spreadsheets and creating proper CSVs every time is a challenge.

# Answer
Here's an example. We have a WP-hosted Civi install using the v3 API. This pulls contact records from some smart groups and dumps the entries as a table in a google sheet. Other pages on that sheet automatically parse/filter the data table. I'm a novice coder, so perhaps clunky, but it will give you the guts of the API calls and sheet filling.
> 4 votes

---
Tags: google, custom
---


# Question
Title: Trying to set up read only role in Drupal
I'm trying to set up a read-only role in CiviCRM on Drupal. The environment is Drupal 8.9.12, CiviCRM 5.32.2 on Centos 8 with Apache. This is a brand new installation I'm setting up for an organization that I volunteer for. (I'm new to CiviCRM but have a long career with the IT industry and Linux in particular.) Right now I'm working on a test environment that I've set up for learning my way around.

I've created a role in Drupal and enabled a number of CiviCRM "view" permissions in this role. I've then created a used and assigned the newly created role to this user.

If I log in as this user I get "Access denied" for everything I've tried. If I now enable "CiviCRM: access CiviCRM backend and API" for this read only role, I can now see the CiviCRM pages but I also seem to ave the ability to edit, which I'm trying to prohibit.

This is all on a virgin install. I didn't encounter any problems installing the software, and if I log in as a user with adminitrator permissions everything works as expected, so there doesn't seem to be a problem with the install.

Any ideas?

Thanks, Martin

# Answer
So it turned out that the "Contact edit" capability was turned on for the "Authenticated User" role. One needs to remember that Drupal "ORs" the permissions for logged in users in any custom role with the permissions in the "Authenticated User" role.

Always check the defaults before blaming the software!
> 3 votes

---
Tags: drupal, roles
---


# Question
Title: Installs fails with Error Database does not support creation of triggers - User has TRIGGER privilege
MySQL 8.0.22-0ubuntu0.20.04.3 (Ubuntu) WordPress 5.6 CiviCRM 5.32.2

Attempting a fresh install of WP and CiviCRM on a clean AWS site as upgrading CiviCRM was continually failing

I get this error:

System Requirements We are not able to install the software. Please review the errors and warnings below.

Severity Section Name Details Error Database CiviCRM MySQL Trigger Database does not support creation of triggers Refresh After updating your system, refresh to test the requirements again. Environment The system settings were auto-detected. CiviCRM will be installed with:

CMS Database mysql://wpdbuser:HIDDEN@localhost/wordpress

CiviCRM Database
mysql://wpdbuser:HIDDEN@localhost/wordpress

CiviCRM Settings File /var/www/wordpress/wp-content/uploads/civicrm/civicrm.settings.php

CiviCRM Source Code /var/www/wordpress/wp-content/plugins/civicrm/civicrm

My Wordpress database user has full privileges including TRIGGER.

```
mysql> SHOW GRANTS FOR 'wpdbuser'@'localhost';
+-----------------------------------------------------------------+
| Grants for wpdbuser@localhost                                   |
+-----------------------------------------------------------------+
| GRANT USAGE ON *.* TO `wpdbuser`@`localhost`                    |
| GRANT ALL PRIVILEGES ON `wordpress`.* TO `wpdbuser`@`localhost` |
+-----------------------------------------------------------------+
2 rows in set (0.01 sec)

```

I specifically added TRIGGER

```
mysql> GRANT  TRIGGER ON wordpress.* TO 'wpdbuser'@'localhost';
Query OK, 0 rows affected (0.01 sec)

```

How can I resolve this ? Is this a CiviCRM problem or a MySQL issue?

# Answer
> 4 votes
In the MySQL CLI, run:

`SET GLOBAL log_bin_trust_function_creators=1;`

---
Tags: wordpress, installation
---


title: Send email in HTML on WordPress

text:
# Question
Title: Send email in HTML on WordPress
Is there a parameter to set to send HTML e-mails from WordPress 5.5.1 / CiviCRM 5.29? Plain-text e-mails are send and tokens merged but HTML doesn't get sent.

Is this related to css (even if I use literal around code)?

Any advice?

EDIT 1: I was able to send very simple HTML but some more complex (but not so complex) code blocks CiviMail

EDIT 2: I've tried with CiviCRM default templates 'Sample CiviCRM Newsletter' and nothing gets sent :-(

EDIT 3: If I create a simple HTML message with the CKEditor, then it gets send.

EDIT 4: I've tried enabling/disabling WordPress' PostSMTP extension and CiviCRM'S Flexmailer, Mosaico and CiviMAIL extensions and component without success.

# Answer
> 3 votes
Wordfence is blocking you from sending mails with JS and CSS.

Some requests contain data that may match patterns the firewall Wordfence uses to detect attacks.

Go to your Wordfence extension menu in "All Options".

In this page go to the Basic FireWall Options part and activate the "Learning Mode".

Verify in the Advanced FireWall Options that all the rules are activated. Add your request in Allowlisted Urls.

Don't forget to Save changes when you are done.

# Answer
> 0 votes
Half solved: I can actually send HMTL but I've having troubles with templates using css. Probably related to smarty but I don't know how to solve as define smarty is on 1 in settings.php and entities boolean is set to false in CKEditor settings.

Is there anything else to set or a clever way to test because disabling was also unsuccessful?

---
Tags: wordpress, email
---


# Question
Title: Mailgun will no longer support TLS 1.0/1.1, does this affect CiviCRM Smtp
I am using Mailgun for sending the email newsletters. I do not use the Mailgun API for sending, just the standard SMPT configuration. Now MailGun sends me the following, bit disturbing email:

```
 Mailgun will no longer support TLS 1.0/1.1

```

I assume CiviCRM uses a more recent version, but where can I find this?

# Answer
> 1 votes
For SMTP Civi by default uses pear::mail, which uses Net\_SMTP. The current version of Net\_SMTP that civi has supports TLS 1.2. See https://github.com/pear/Net\_SMTP/blob/18b5dbaa049bee5f6d02c9a4318db02472e2c922/Net/SMTP.php#L613

It also depends on the version of the openssl extension you have installed in your php. If you run `php -i | grep -i openssl` or look at the output of phpinfo, you most likely have newer than openssl 1.0.1 so should be good.

---
Tags: civimail, smtp
---


# Question
Title: How can I adjust the date widget on Reports
The birth date widget on Reports such as the Constituent Detail seems hard coded to allow only dates within the last 20 years. How do I adjust this?

# Answer
Under **Administer \> Customize Data and Screens \> Date Preferences** you can adjust various date settings. In this case it's a little unclear but rather than changing the "Birth and deceased dates" setting you need to adjust the "searchDate" setting which is "Used in search forms and for relationships."

The "Start offset" value is the number of years prior to today that should be allowed in the datepicker.
> 1 votes

---
Tags: civireport, dates
---


# Question
Title: How do I set up a "Mailing List Only" option in CiviCRM 5.29.1?
In addition to setting up paid Membership Sign-up, I am trying to create a free "Mailing List Only" option. I created a contribution page entitled "Mailing List Only", created a "Mailing List Only" Price Set and even a "Mailing List Only" Financial Type so that I could set the price to $0.00. But when I try to test-drive the page, I get the following message:

"The requested online contribution page is missing a required Contribution Amount section or Membership section or Price Set. Please check with the site administrator for assistance."

I am using CiviCRM 5.29.1 and WordPress 5.5.3 running Blocksy theme.

I hope someone can help me!

# Answer
> 2 votes
Welcome to StackExhcange MABB. The Documentation of CiviCRM should provide all the information you need to set up a mailing subscription page: https://docs.civicrm.org/user/en/latest/email/set-up/.

---
Tags: wordpress, civicontribute, civimember
---


# Question
Title: How to prevent a form submission on a CiviCRM form with jquery?
I have a custom field set and then added to a profile, where the text input is shown based on selection of radio button via jquery. Within the profile, the radio is a required field but the text input is not.

I was able to show input based on the condition of radio selection and make the input a required field if visible. But when I click the submit button although I see the alert but it does not stop the form submission.

How can I prevent the form submission until my input is validated? Any help would be appreciated. Here's my jquery in the extension..

```
    CRM_Core_Resources::singleton()->addScript("
        CRM.$(function($) {
            showInput();
              function showInput() {
                $('.CRM_Event_Form_Registration_Register input[name=custom_280]').change(showInput);

            if ($('.CRM_Event_Form_Registration_Register input[name=custom_280][value=1]').is(':checked')){
                $('div#editrow-custom_281 input').val('')
                $('div#editrow-custom_281').slideDown('slow');
           }
            else {
                  $('div#editrow-custom_281').slideUp('slow');
                }
            }
    //on click of proceed btn
            $('button#_qf_Register_upload-bottom').on('click', function(e) {
    //check if the checked value is 1
          if ($('input[name=custom_280]:checked').val() === '1') {
            if (!$('div#editrow-custom_281 input').val()) {
              $('div#editrow-custom_281 input').focus();
// Prevent submit
              e.preventDefault(e);
                          Swal.fire({
                      icon: 'error',
                    });
            } else {
                    return;
                  }
          }
            });
       });
    ");

```

# Answer
> 1 votes
I would add validator method via js which would stop the submit until the validator returns true

```
CRM.$(function($) {
  $.validator.addMethod('concessionaryError', function(value, element) {
    let isValid = true;
    if (value == '') {
      isValid = false;
    }
    return isValid;
  });
  $('#custom_39').addClass('concessionaryError valid');
  $.extend($.validator.messages, {concessionaryError:'please correct the error'});
});

```

HTH

Pradeep

---
Tags: forms, online-registration, jquery
---


title: Paypal Item Title Prefix

text:
# Question
Title: Paypal Item Title Prefix
In the information transmitted to Paypal for payments, Civi adds a prefix to the "Item Title".

E.g. Donations through the "Donations" contribution page have a Paypal Item Title such as this: 603-607-Donations.

Is there any way to stop the prefix from being included? It's interfering with our use of the PayPal reports and sorting donations according to the source (contribution page).

# Answer
> 1 votes
Not through the UI i guess. You can make use of the https://docs.civicrm.org/dev/en/latest/hooks/hook\_civicrm\_alterPaymentProcessorParams/ in your extension and have something like -

```
$params[`item_name`] = 'your custom title';

```

---
Tags: paypal
---


# Question
Title: Where is the 'Recent Items' block in Drupal 8
I have CiviCRM 5.33.2 on Drupal 8.9.12.

On Drupal 7, CiviCRM created a number of Drupal Blocks that could be displayed according to the Theme configuration, including the very useful 'Recent Items'.

On Drupal 8 I am not seeing any of these Blocks at all. Where are they?

# Answer
> 2 votes
Oops.

I have just found out how to insert a Block in D8 - you have to click a button to get the list, rather than scrolling down as on D7. The CiviCRM stuff is there OK.

---
Tags: drupal-8
---


# Question
Title: How to combine event registration fee and sponsorship donation in one price set?
I want to have a price set for an event which offers two mutually exclusive options: (1) registration fee for the event (2) a sponsorship fee. Option 1 should register the person as an attendee. Option 2 should not. In other words, the visitor either registers for an event, or makes a donation.

I thought that by putting 0 (zero) into the 'participant count' field for the second option, that it would not increment the participant count for someone who pays the sponsorship fee. But it DOES register the person for the event when all they are doing is making a donation. Am I missing something or can Civi not handle this use case without programming?

# Answer
> 0 votes
The participant count is only participants for the particular price set field. You're right that no matter what you do in the price set, the contact will be registered for the event. You could instead ignore who is registered for the event and just look at who is registered for the relevant price set field and use that as your group of registered participants. That might be less than ideal.

Otherwise, this sounds like a job for Webform CiviCRM, assuming you're on Drupal. Be warned though, that Webform CiviCRM will force you to use line items to record the donation and registration. I could be wrong, but I don't think Webform will allow you to record two different financial types depending on user selections.

---
Tags: civievent, civicontribute, price-sets
---


title: An active PHP session was detected

text:
# Question
Title: An active PHP session was detected
I'm running CiviCRM v5.32.2 and the CiviCRM WP REST API v0.1 plugin in Wordpress v5.6.

In Wordpress Site Health Status i get this warning:

```
An active PHP session was detected

A PHP session was created by a session_start() function call. This interferes with REST API and loopback requests. The session should be closed by session_write_close() before making any HTTP requests.

```

Do you know if this error is related to CiviCRM, and what to do about it?

# Answer
> 1 votes
The same questions was asked at WordPress Site Health contains critical errors unless CiviCRM is disabled and had some good answers.

Summary:

* Yes CiviCRM is to blame for the notice.
* No - it's not a real problem.
* Plugins exists to suppress the notice.

---
Tags: php
---