title: Civicrm on Amazon AWS

text:
# Question
Title: Civicrm on Amazon AWS
I have followed the template and instructions from here - https://aws.amazon.com/blogs/publicsector/managing-nonprofit-members-donors-civicrm-aws/

This is a great piece. I have my production environment up and running with a modified version of this template. However, I've noticed the environment is slow. I have a t3.large setup with the Aurora DB and I have configured the ElasticCache with REDIS - this really helped but there are times the lag is unbearable or the site times out. Any suggestions?

Any pointers available to speed things up? The cache hits are around 99% and sub second for the DB so I'm thinking its the Apache server?

Thanks!

# Answer
Well, it turned out to be my own fault for the CPU usage, etc. I had turned on monitoring by AWS for port 80 and 443. Apparently something was out of whack with that because it consumed ALOT of the server! I removed those monitors and surprise... back to normal and what I would have expected. Odd behaviour but the function isn't that important to me that I will hunt down why it was doing what it was. I used the template as posted above, have distributed support for both the web pages and the database. Quite happy with the change.
> 3 votes

# Answer
I manage an instance with around 200,000 contacts on a EC2 t2.medium (No elastic scaling). We gradually ratcheted up to an RDS t3.xlarge.

What ballpark are you in with Contacts and simultaneous users? Are you talking about performance in the back-office (i.e. CiviCRM itself), or custom solutions that integrate the Civi API?

If you are using the "default" EC2 size recommended in the blog post, I would expect problems. Also, I'm not sure it is a good idea to run Apache with the default configurations in the AMI. I use a custom image that sets limits per Civi's recommendations and per my experience.

===

That's my succinct answer... if you care to stay tuned for more rambling...

Thanks for posting the question, I would be curious to find out what more CiviCRM admins are doing on AWS. The blog post is written by a name I do not recognize and contains the factual error that "CiviCRM is built on Wordpress", so I don't think the author has any experience beyond writing the post. I haven't had the pleasure of trying Civi with scalable EC2 instances. Is that possible without rewriting how core handles files?

This instance is on AWS due to general IT strategic decisions, not because it was well suited for CiviCRM. If there is a reason to use AWS for Civi, I think it might be RDS.

I had to put a lot of effort into optimizing for mailings, mostly to keep them from bogging down other things. AWS SES is awesome and has just swallowed right down all I could throw at it. But I found that Apache was getting slammed with image requests when people opened the messages and was able to take that load off by tuning caching provided by CloudFlare.

The best advice is always, "Get More Information". Figure out how to profile your unique usage. You will need to look at both individual request performance, and also how things deteriorate under increased load. If you can't simulate high-demand, then look for opportunities to observe them in real-time.

With all the facility of the cloud, web servers should be getting smaller. I would recommend coming up with a few categories of requests you need the web server to perform well on and profile each step of the most intensive kinds of requests. Look to bad code or inefficient api utilization or database queries needing optimization. If you are just trying to get vanilla Civi working better, again, I think just beef up the database server.
> 2 votes

# Answer
Probably your instance type is not powerful enough. Also you can use ARM based instance, which is cost effective and gives better performance with gp3 EBS.

I have a m6g.large with at least another 3 websites plus one of them is civicrm with drupal, also running a docker container as well. So far no issues.

I didnt use the template you have tried, but I have fired up my own EC2 with this control panel https://www.cloudpanel.io and separately installed all softwares. This may help.
> 0 votes

---
Tags: aws
---


# Question
Title: Is there way to convert date into timestamp with smarty
I need to calculate a date based on a membership but this has to done with timestamp to have a common numeric value. We've read almost the whole smarty.net documentation and couldn't find our solution.

This would have been our best trick:

`{capture assign="end_date"}{latestcurrentmembership.end_date}{/capture}{$fin = $end_date|strtotime}`

but either `capture assign` and `strtotime` seem to be working within CiviCRM. Any idea?

EDIT 1: `capture assign` works well, it's `strtotime` that seems to not work within CiviCRM

# Answer
> 0 votes
answer came later on:

> {latestcurrentmembership.end\_date-31536000|date\_format:'%Y%m%d'}

I only add to subtract one year in seconds

# Answer
> 2 votes
```
{capture assign="end_date"}{latestcurrentmembership.end_date}{/capture}

// convert it to strtotime
{assign var='end_date' value=$end_date|strtotime}

or

{assign var='end_date' value=$end_date|date_format:"%s"}

// display in date format
{$end_date|date_format:'%Y%m%d'}

```

HTH

Pradeep

---
Tags: smarty
---


# Question
Title: Tax receipt sending to event registrants
I have setup a golf tournament event. It is using a financial type where I have set deductible=no (we want to issue tax receipts to registrants after the event when we know the true deductible amount). So how is Civi still sending a tax receipt when people register? Note: it isn't happening every time someone registers, but it did happen when it never should have.

I looked at the event setup and can't see anything that would trigger a tax receipt being attached to the automated registration email.

Any ideas? If the fintype is set to not issue receipts, I don't understand why a receipt would be issued for any reason.

# Answer
> 0 votes
Some things to check:

* Are ANY of the line items deductible? (Not just the contribution financial type)
* Is the setting "attach to workflows" set at administer - civicontribute - cdntax settings?
* Do you have any custom code implementing the eligibility hook?

---
Tags: civievent, cdn-tax-receipts
---


# Question
Title: What specialist I need to have in the office to handle CiviCRM daily?
I need to define a job description for a role, that will work with CiviCRM database daily: update member accounts, generate reports, track memberships, send mailings.

Does CiviCRM require any specific set of system admin skills or can any entry-level clerk handle daily tasks in CiviCRM?

In my case, CiviCRM is integrated with Drupal.

Thank you.

# Answer
> 1 votes
Welcome to SE! The tasks you list are all user-level tasks handled through the browser UI and do not need any system admin skills.

You will also need someone to take care of upgrades for CiviCRM core and extension and Drupal core and modules and possibly operating system upgrades. Depending on your hosting arrangements, those may be taken care of as part of the hosting, or by a third party providing CiviCRM support.

---
Tags: civimember, civireport
---


# Question
Title: Individuals records in 1 group cannot be assigned to another group
Added more information to my question: Here is the situation. We are using WordPress and CiviCRM. We have Donors and Volunteers. With donations, we upload a CSV file for our new donors (new donors only. Contributions are uploaded separately). However, if the new donor happens to be a volunteer, the record gets rejected as a "duplicate". Currently, I log in as admin to manually identify the individual as belonging to the "Donor" group (Add group - donor).

We recently encountered a new and more serious problem. When volunteers submit an interest form which has been created from the Profile Fields (https://newlife.socialservicesconnect.com/civicrm/profile/create/?gid=31&reset=1), and if they happen to be a current donor, they will receive an email telling them that their submission is rejected because their information is already in our records. The problem is they than think that they are already in our system as Volunteers when it fact, that information is not updated and unless they contact us to tell us, we won't know.

Vendor says its is a technical issue, nothing can be done. I don't believe so and am relying on the hive mind for help.

Thanks to everyone in advance.

# Answer
> 0 votes
When you do an import of contacts, you can choose a dedupe rule and if you want to update or fill contact data. So you could use an existing dedupe rule like Name and Email or create your own dedupe rule that meets your needs. Then when you import contacts who are already in the database, you will update or fill the contact if they match according to the dedupe rule (update and fill will work the same as far as adding a contact to a group, I believe).

Regarding your volunteer interest form, a similar principle should be at work here, new contacts should be added and existing contacts should be updated (adding them to the volunteer group). Can you share what kind of form you are using and how it is connected to CiviCRM?

---
Tags: profile, groups
---


# Question
Title: Is it possible to bulk delete Contact Notes?
I have around 500 Contact records with notes I would like to delete. Is it possible to do this in bulk?

# Answer
> 3 votes
You can do this via SearchKit -

* Create new search
* Select 'Notes' in the search for box

That brings up all notes you have in the system and you can then select all and hit 'Delete' in the action menu.

If you are trying to apply any other filter criteria it can be narrowed down but we would need a little more detail.

---
Tags: contacts
---


# Question
Title: Is Grants Management extension/component included in Spark?
I'm working with a small local racial justice group looking for their first CRM. Because they need a mix of advocacy, comms, & regular fundraising tools, CiviCRM came up in my searches and Spark seems like the easiest way for a small org to get started.

One thing that isn't clear from the Spark landing page is whether Spark includes the Grants component/extension (CiviGrant)? Does anyone know?

Thanks!

# Answer
> 1 votes
I suggest emailing spark@civicrm.org to get a definitive answer, the 'Essentials' package does have limited extensions and the team supporting/running Spark can confirm if CiviGrant is one of them or if not on that package if it is part of 'Pro'.

---
Tags: civicrm-spark, civigrant
---


# Question
Title: Can I use Smarty in Scheduled reminders?
Title says it all, I need to format some tokens and Smarty doesn't seem to work.

Is it possible to use smarty for Scheduled reminders?

# Answer
Actually there is also a setting in "CiviMail Component Settings", not sure how long it's been there.

"Use Smarty in scheduled reminders" must be checked on.
> 2 votes

# Answer
As said by Demerit, You can use smarty logics in Scheduled reminders also, but you need to set CIVICRM\_MAIL\_SMARTY to 1 in civicrm.settings.php

```
define( 'CIVICRM_MAIL_SMARTY', 1 );

```
> 2 votes

---
Tags: smarty
---


# Question
Title: Token for contribution.note field in message templates
I have reviewed past posts on this topic, but I'm not a coder so I'm hoping someone can make this straight forward for me. I.e. what code do I need to use, where do I put that code, etc.

We'd like to use the contribution note field and include it in the email notification being sent to the person the donation is in honor of (so the donor can add a custom message to the honoree).

Thanks!

# Answer
I'm guessing you're using the Fuzion tokens for latest contribution here (like `{latestcontribs.something}`), which doesn't include contribution note. I think you'd have to add it to Fuzion Tokens or hire someone to do that.
> 1 votes

---
Tags: civimail, tokens, smarty
---


# Question
Title: How to get a report with donor retention rate
I am trying to figure out my organization's Donor Retention rate from last fiscal year or with the time parameters I choose. For example, year-to-date retention rate, year before last fiscal year, etc.

Could you please point me in the right direction? I am very, very new to Civi and have figured out a lot, but need a push on this one.

Thank you, Shea

# Answer
Under reports - contribution reports you'll find LYBUNT and SYBUNT reports which is what it sounds like you're looking for. https://docs.civicrm.org/user/en/latest/contributions/reports-and-analysis/#contribution-reports

Also https://docs.civicrm.org/user/en/latest/the-user-interface/searching/#contributions-made-in-year-x-and-not-year-y
> 1 votes

# Answer
Using SearchKit is another option that gives you more control over the results, but it's a little more technical. It's what we use to calculate donor retention rates.

So for example, you could search for:

* Contacts
* with Contact Contributions (required) with Financial Type as appropriate, Status = Completed, and Date Received = whatever range you want as the first period, using the Date Range is easiest here rather than Pick Date
* Group by Contact ID

This will give you how many contacts donated in a certain period. Now add to that same search another:

* Contact Contributions (required) with Financial Type, Status and Date Received = whatever range you want as the second period

Now this will give you the number of contacts who donated in both periods. Divide those two numbers and you have your retention rate.

You can save the first search and then make a copy for the second and save that again so you have two saved searches that you can just check whenever you need and divide the results.
> 1 votes

---
Tags: civireport
---


# Question
Title: is it possible to restrict access to one particular case case type?
I am unable to find an answer to this, so hoping someone will be able to point me in the direction of a solution....

We work with vulnerable older adults and as such may occasionally have to record safeguarding concerns according to legal requirements and our own policies and procedures and some actions must take place within certain delays.

I thought the best way to go about this would be to create a case template with a set of activities on a timeline (open case, concern reported, concern report to relevant safeguarding adult board, etc... etc... with 'case resolved' at the end.) So far it seems feasible.

I have a problem, this case would need to be seen only by

* the staff safeguarding lead (who would be the person managing the case)
* a senior manager with some safeguarding responsibility at least to ensure at least one person is always available for reporting.

How could I make these cases only visible / accessible by 'need to know' only individuals?

I saw that I can create cases and tick 'restrict to group' but it seems that this would only limit who the assignees can be, and the case would still be visible by others....

Thanks for your suggestions...

# Answer
> 1 votes
In the cms permissions create three roles:

* One that has "access all cases" permission
* One that has "access my cases"
* One that has neither

Then give the senior managers the first role and the case managers the second. Give everyone else the third.

https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/#cms-permissions

---
Tags: civicase
---


# Question
Title: Can form processor use postcode to derive state?
Rock and a hard place: Using gravity forms to collect address with autocomplete results in corrupted state/province names as users override the auto complete & can't spell. Or using gravity forms without address autocomplete - with dropdowns for country & state upsets our fundraising team as they love autocomplete.

So, just wondering if form processor can do something like:

```
If postcode = 3*** state = Victoria
            = 4*** state = Queensland

```

Only 8 states to choose from

Thanks all

# Answer
> 1 votes
You could use the Set Value action? So say for example the first action would set the value state to Victoria and have the condition input postcode = 3 etc.?

# Answer
> 0 votes
not an answer - refer to comment

---
Tags: form-processor, action-provider
---


# Question
Title: Invoice sending as email with PDF attachment replaces email contents with PDF contents
Sending invoices with emails, where the invoice is attached as PDF to the email, and having a freely designed email text results in the contents of the email body being replaced with the contents of the invoice PDF and nothing being attached to the email.

We used the normal emailing invoice workflow and have tested it on CiviCRM 5.57.1, 5.58.1 and 5.60.0 with either Drupal 9.5.1 or 9.5.5.

How to reproduce: First search for a contribution for which you want to send the invoice. Select the ones you want to send in the search result. Choose the action "Invoices - print or email". On the next screen select "Email Invoice" and fill the now displayed fields with suitable data. We normally use the Invoice Helper extension but the problem also appears without the extension being enabled. Enter some subject and some content for the email. Then press send and check the received email(s).

The content of the received email(s) is that of the invoice that should be attached. The entered email content is gone. The invoice template has not been altered and is in default state.

We discovered this problem with the mentioned CiviCRM version but we do not know with which version this behavior started. The invoice sending worked before.

Does anybody have the same problem?

Any help is appreciated.

Thanks, Stefan

# Answer
> 2 votes
Just noting this appeared to fix for the reporter & one other

https://lab.civicrm.org/dev/core/-/issues/4259#note\_90528

# Answer
> 0 votes
Whenever you hit something you think is a regression please create a ticket in gitlab & indicate you believe it is a regression. We prioritise possible regressions (& accept that some false positives will be reported)

---
Tags: civicontribute, invoice, attachments
---


# Question
Title: Cannot use CSV GUI Import to api Fatal error
WP 5.7.8 civi 5.59.4 CSV GUI Import to api 1.12 Have cleared cache and emptied templates\_c Have uninstalled and reinstalled but get error below when I try to use ie it doesnt start just get the below

Nothing in config&log file
php log =

```
2023/05/17 05:33:28 [error] 101837#101837: *972345 FastCGI sent in stderr: "PHP message: PHP Fatal error: Cannot redeclare _civicrm_api3_form_processor_default_data_action_create_spec() (previously declared in /www/*****_235/public/wp-content/plugins/civicrm/civicrm/ext/org.civicoop.form-processor/api/v3/FormProcessorDefaultDataAction/Create.php:13) in /www/*****_235/public/wp-content/plugins/civicrm/civicrm/ext/org.civicoop.form-processor/api/v3/FormProcessorValidateAction/Create.php on line 13" while reading response header from upstream, client: 125.168.64.134, server: *****.org.au, request: "GET /wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fcsvimporter%2Fimport HTTP/1.1", upstream: "fastcgi://unix:/var/run/php8.0-fpm-*****.sock:", host: "*****.org.au:46442", referrer: "https://*****.org.au/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsetting%2FupdateConfigBackend&reset=1"
2023/05/17 05:30:59 [error] 101837#101837: *972118 FastCGI sent in stderr: "PHP message: PHP Warning: Undefined array key "group_by" in /www/*****_235/public/wp-content/uploads/civicrm/templates_c/en_AU/%%F5/F54/F5478576%%Table.tpl.php on line 190PHP message: PHP Warning: Undefined array key "group_by" in /www/*****_235/public/wp-content/uploads/civicrm/templates_c/en_AU/%%F5/F54/F5478576%%Table.tpl.php on line 193PHP message: PHP Warning: Undefined array key "group_by" in /www/*****_235/public/wp-content/uploads/civicrm/templates_c/en_AU/%%F5/F54/F5478576%%Table.tpl.php on line 190PHP message: PHP Warning: Undefined array key "group_by" in /www/*****_235/public/wp-content/uploads/civicrm/templates_c/en_AU/%%F5/F54/F5478576%%Table.tpl.php on line 193PHP message: PHP Warning: Undefined array key "group_by" in /www/*****_235/public/wp-content/uploads/civicrm/templates_c/en_AU/%%F5/F54/F5478576%%Table.tpl.php on line 190PHP message: PHP Warning: Undefined array key "group_by" in /www/*****_235/public/wp-content/uploads/civicrm/templates_c/en_AU/%%F5/F54/F5478576%%Table.tpl.php on line 193PHP message: PHP Warning: Undefined array key "group_by" in /www/*****_235/public/wp-content/uploads/civicrm/templates_c/en_AU/%%F5/F54/F5478576%%Table.tpl.php on line 190PHP message: PHP Warning: Undefined array key "group_by" in /www/*****_235/public/wp-content/uploads/civicrm/templates_c/en_AU/%%F5/F54/F5478576%%Table.tpl.php on line 193" while reading response header from upstream, client: 125.168.64.134, server: *****.org.au, request: "GET /wp-admin/admin.php?page=CiviCRM&q=civicrm%2Freport%2Finstance%2F129&reset=1&section=2&context=dashlet&snippet=json&crmAngularModules=api4,crmDashboard,crmResource,crmUi,crmUtil,dialogService,ui.sortable HTTP/1.1", upstream: "fastcgi://unix:/var/run/php8.0-fpm-*****.sock:", host: "*****.org.au:46442", referrer: "https://*****.org.au/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fcsvimporter%2Fimport"

```

# Answer
The first line is showing a fatal error arising from the Form Processor code. Check that you have the latest version of that, or try disabling it.
> 1 votes

---
Tags: import
---


# Question
Title: Shoreditch on WordPress with Clean URLs?
I know Shoreditch is not officially supported on WordPress, but I'm playing around with migrating from D7 to WP and Shoreditch looks pretty good in the admin pages of WP. When I use non-clean URLs for pages (like https://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fcontact%2Fview&reset=1&cid=1), it looks pretty good.

But when I want to use clean URLs (https://example.org/civicrm/contact/view/?reset=1&cid=1), WordPress reverts back to whatever theme I have activated. The data is there, so I know Clean URLs are working, but it's not using the theme I want.

Is there a way to get the Shoreditch plugin/theme to work with clean URLs? Or am I missing something to make it work?

# Answer
> 3 votes
A Clean URL in a WordPress context is not the same as a Clean URL in a Drupal context. Drupal has no real concept of an "admin" area with its own theme, but this distinction is a fundamental part of WordPress.

The two URLs in your question demonstrate this distinction:

* The former is an "admin" URL - the page is rendered by the default WordPress admin styles and the CiviCRM content is rendered by Shoreditch.
* The Clean URL version is a "front end" URL - the page is therefore rendered with whatever front end theme you have activated and the CiviCRM content is rendered by Shoreditch if you have it set as your "Frontend Theme" in CiviCRM.

In summary, no you are not missing something. What you are seeing is expected behaviour.

---
Tags: shoreditch
---


# Question
Title: SearchKit: search for Cases with criteria relating to a custom field
In SearchKit, I am trying to search for Cases which have a specific value assigned to a custom field ("Case Subtype"), or for which the custom field is not populated.

I don't seem to be able to construct the query to satisfy both conditions, though I have successfully created separate queries to deliver each condition.

It seems to me that it might be down to a lack of understanding of the relationship between the Cases table and an associated Case custom fields table, albeit that the custom field I am operating on is visible for selection in the query without joining another table.

Here is the query structure I have tried (and I have tried variations of it too), which yields no results:

```
{
  "version": 4,
  "select": [
    "Case_CaseContact_Contact_01.sort_name",
    "subject",
    "case_type_id:label",
    "case_custom.case_custom_subject:label",
    "status_id:label",
    "start_date",
    "Case_CaseContact_Contact_01_Contact_Membership_contact_id_01.membership_type_id:label",
    "Case_CaseContact_Contact_01_Contact_Membership_contact_id_01.status_id:label",
    "Case_CaseContact_Contact_01_Contact_RelationshipCache_Contact_01.display_name",
    "Case_CaseContact_Contact_01_Contact_RelationshipCache_Contact_01.near_contact_id.display_name",
    "Case_CaseContact_Contact_01_Contact_Membership_contact_id_02.membership_type_id:label",
    "Case_CaseContact_Contact_01_Contact_Membership_contact_id_02.status_id:label",
    "Case_CaseActivity_Activity_01.subject",
    "Case_CaseActivity_Activity_01.activity_date_time"
  ],
  "orderBy": [],
  "where": [
    [
      "case_type_id:name",
      "=",
      "certified_membership"
    ],
    [
      "ISNULL(case_custom.case_custom_subject:name)",
      "=",
      true
    ],
    [
      "OR",
      [
        [
          "case_custom.case_custom_subject:name",
          "IN",
          [
            "Uncertified_participant",
            "Certified_participant"
          ]
        ]
      ]
    ]

```

# Answer
> 0 votes
It looks like you are AND'ing the two conditions so it's never true. This seems to work for me:

So the WHERE clause is like:

```
"where": [
    [
      "OR",
      [
        [
          "cas.something:name",
          "IS EMPTY"
        ],
        [
          "cas.something:name",
          "=",
          "two"
        ]
      ]
    ]
  ],

```

---
Tags: custom-fields, civicase, searchkit
---


# Question
Title: How do I see CiviCRM variables in Netbeans using xDebug?
I'm trying to use Netbeans and xDebug to read some CiviCRM variables, but I am thus far unable to even see any CiviCRM variables in Netbeans. xDebug (version 3) does seem to be connecting to Netbeans without issue, and showing me the HTTP-related variables such as cookies and contents of GET and POST requests.

When I open a case in CiviCRM, I don't see any CiviCRM-specific variables, although I do see some new HTTP and PHP variables. How do I go about finding the CiviCRM variables that I need to read?

# Answer
In your php.ini make sure xdebug.mode has "debug" in it. In netbeans set breakpoints in the code, so e.g. for opening Manage Case set a breakpoint in CRM/Case/Form/CaseView. Then it will pause execution and you can examine the variables.
> 1 votes

---
Tags: civicase, xdebug
---


# Question
Title: Custom field post help results in "Unable to load help file."
The blue help bubble has stopped working on all my custom data fields. The error is shown in the snippet below, "Unable to load help file." Help for non-custom fields continues to work as usual. Clearing caches and resetting paths didn't help. At a loss for what else to do, I restarted the server to no avail. The CiviCRM log file records the exception in the text below the snippet.

CiviCRM 5.61.1, Drupal 7.97, MySQL 5.7.42, PHP 7.4.33

```
May 18 20:36:16  [debug] $backTrace = #0 /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Error.php(443): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php(39): CRM_Core_Error::handleUnhandledException(Object(RuntimeException))
#2 /home/civiprod/public_html/sites/all/modules/civicrm/drupal/civicrm.module(471): CRM_Core_Invoke::invoke((Array:3))
#3 /home/civiprod/public_html/includes/menu.inc(527): civicrm_invoke("ajax", "inline")
#4 /home/civiprod/public_html/index.php(21): menu_execute_active_handler()
#5 {main}

May 18 20:42:48  [error]
$Fatal Error Details = array:3 [
  "message" => "Invalid {htxt} tag. Wrapped 0 opening-tags and 1 closing-tags."
  "code" => null
  "exception" => RuntimeException {#1347
    #message: "Invalid {htxt} tag. Wrapped 0 opening-tags and 1 closing-tags."
    #code: 0
    #file: "/home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Smarty/plugins/prefilter.htxtFilter.php"
    #line: 32
    trace: {
      /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Smarty/plugins/prefilter.htxtFilter.php:32 {
        smarty_prefilter_htxtFilter($tpl_source, &$smarty)
        › if ($htxts !== $_htxts) {
        ›   throw new \RuntimeException(sprintf('Invalid {htxt} tag. Wrapped %d opening-tags and %d closing-tags.', $htxts, $_htxts));
        › }
      }
      /home/civiprod/public_html/sites/all/modules/civicrm/packages/Smarty/Smarty_Compiler.class.php:248 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/packages/Smarty/Smarty.class.php:1499 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/packages/Smarty/Smarty.class.php:1432 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/packages/Smarty/Smarty.class.php:1271 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Smarty.php:192 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Page/Inline/Help.php:36 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Page/AJAX.php:59 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php:285 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php:69 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php:36 { …}
      /home/civiprod/public_html/sites/all/modules/civicrm/drupal/civicrm.module:471 { …}
      /home/civiprod/public_html/includes/menu.inc:527 { …}
      /home/civiprod/public_html/index.php:21 { …}
    }
  }
]

May 18 20:42:48  [debug] $backTrace = #0 /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Error.php(443): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/civiprod/public_html/sites/all/modules/civicrm/CRM/Core/Invoke.php(39): CRM_Core_Error::handleUnhandledException(Object(RuntimeException))
#2 /home/civiprod/public_html/sites/all/modules/civicrm/drupal/civicrm.module(471): CRM_Core_Invoke::invoke((Array:3))
#3 /home/civiprod/public_html/includes/menu.inc(527): civicrm_invoke("ajax", "inline")
#4 /home/civiprod/public_html/index.php(21): menu_execute_active_handler()
#5 {main}

```

# Answer
> 2 votes
Looks like a regression to me, I can confirm it works on 5.58.1 but not dmaster, so not on the most recent version. I'd recommend posting an issue on Gitlab: https://lab.civicrm.org/groups/dev/-/issues

---
Tags: custom-fields
---


# Question
Title: Are their tokens for expired memberships?
We are sending emails to our lapsed members, and would like to include additional data about their memberships. But all the tokens available seem to refer to "current memberships" (e.g. "latest current membership end date"). If their membership has expired, that's just blank, right?

Is there perhaps hidden somewhere a token for "latest membership end date" (including expired and inactive memberships)?

At the very least, is there a token for "Member since"? That would be a nice thing to remind our lapsed members about.

If not, maybe someone would like to create those tokens?

I am running CiviCRM Version 5.58.1, on WordPress.

# Answer
> 2 votes
Fuzion Tokens extension has the tokens you want, including Latest Membership End Date.

---
Tags: civimail, civimember, tokens
---


# Question
Title: No admin page for civiCRM on Drupal 8 install (Xampp on Windows 10)
Sorry if my English contains mistakes.

I just installed Drupal 8 on Xampp (Windows 10 latest version) with Composer and Drush.

I then used the following commands for civiCRM:

*cd /c/xampp/htdocs/site/web/ composer config extra.enable-patching true composer config minimum-stability dev composer require civicrm/civicrm-asset-plugin:'~1.1' composer require civicrm/civicrm-{core,packages,drupal-8}:'~5.39'*

I also discovered on the internet that there were various other manipulations to be done:

* change the access rights for ‘civicrm.settings.php’;
* activate the "trusted host" to avoid an error in the administration of Drupal;
* activate the line 'extension = intl' in php.ini; etc.

"cv" being broken from what I could read, I then enabled civiCrm in the extensions and checked user permissions. Everything seems normal, I even tried giving the rights to any authenticated user.

But I am not getting to the civiCRM administration page as you can see.

I don't have another error message except "You don't have access to any admin page. " I tried logging out then logging in, but no change.

I couldn't find anything on the internet that could help me. Am I missing something? A solution, a piece of advice please?

# Answer
> 1 votes
Check the console if any error is showing and make sure your civicrm.settings.php file has correctly set Base URL path (CIVICRM\_UF\_BASEURL) and $civicrm\_paths\['civicrm.files'\]\['url'\].

In my case it was base path updated wrongly, I have updated and it started working.

---
Tags: installation, admin
---


# Question
Title: Event Report with amount paid and balance owing by participant
CiviCRM 5.55.0 Wordpress

Trying to pull a report (export output preferred) to provide a list of registered participants that includes the total amount owing, total paid, and fee level. I have reviewed several posts on various forums indicating a "balance" owing is available as a selected field for export; however, unable to locate the field in custom reports. The report is intended to be used at check-in and would ideally primarily based on the event, list the participants with the event fee level, total paid, and balance owing.

# Answer
> 1 votes
I think the core Attendee List report may meet your needs - you can add additional columns for example for fee level, amount paid and balance on the 'Columns' tab and filter by event on the filter tab.

Unfortunately you would have to change the filter as necessary each time you run the report so there may be a Search Kit option that has more defaults sets and exposes the filter for easier searching and exporting.

---
Tags: civireport, payment, civicrm-event
---


title: Getting error when updating to 5.61.2

text:
# Question
Title: Getting error when updating to 5.61.2
I have CiviCRM version 5.41.2 running on Joomla and I'm trying to upgrade to 5.61.2

I have followed the upgrade guide here: https://docs.civicrm.org/sysadmin/en/latest/upgrade/joomla/

But when I get to "Upgrade the database" I'm getting an error shown:

```
Declaration of CRM_Custom_Import_Form_Summary::preProcess()
must be compatible with CRM_Contact_Import_Form_Summary::preProcess(): void

...\administrator\components\com_civicrm\civicrm\CRM\Custom\Import\Form\Summary.php:13

```

If I look at the above file, on line 13 is as follows:

```
13     public function preProcess() {
14     parent::preProcess();
15     $session = CRM_Core_Session::singleton();
16     $session->pushUserContext(CRM_Utils_System::url('civicrm/import/custom', 'reset=1'));
17   }

```

# Answer
> 2 votes
See the notes after step 4 at https://docs.civicrm.org/sysadmin/en/latest/upgrade/joomla/#install-the-extension. The joomla upgrade process is flawed when files are removed from civi. Remove that Summary.php file manually.

You may also want to remove the other files deleted in https://github.com/civicrm/civicrm-core/commit/ff2119386936d603d226631ee081e06855f9a1cb, or do a complete civi folder removal and replace.

---
Tags: upgrade, joomla
---


# Question
Title: No menu item "OAuth", can't paste provider values into client
Following the steps in https://docs.civicrm.org/sysadmin/en/latest/setup/oauth/

After the installation of the OAuth2 extension, I don't get an "OAuth" item in the menu "Administer =\> System Settings =\> OAuth" There is an "Authentication" item, but it points to authx, not to OAuth.

So, I am not getting the CiviCRM page where I can paste the "Client ID" and "Client Secret" values into the client.

How to continue? Can I get the page using cv?

-- CiviCRM 5.59.3 on DRUPAL

# Answer
> 1 votes
For backdrop the url is : website.com/civicrm/admin/oauth

I had the same issue, no Oauth menu, but we have a staging version of the site which is showing the Oauth menu item -- so I used that to get a working url (above).

But I got an access denied error. I asked my co-worker to log in and see if that's what they got too -- which is what they got it; they then reminded me that the permissions are not set for roles/users for Oauth -- so I set the permissions and that seemed to have worked: website.com/admin/config/people/permissions

Again this is for backdrop. Hope this helps.

---
Tags: cv, oauth
---


# Question
Title: Export contacts with last donation date/amount (if there is a donation)
I need to export a list of our contacts which is easy enough. However, I cannot figure out how to include in that export if they are a donor - and ideally the date/amount of their last donation. When building the fields to export I don’t see any option for this so I’m running two reports - a contact export and a donor export and merge them in excel and then spend time sorting them all out. What am I missing? Surely there is a way to export all contacts with donation information for those who have donated. Thanks in advance!

# Answer
> 2 votes
You could get something close with SearchKit, but not quite what you are looking for. With the search below, you'll get Contacts with their most recent donation date and their total donations over whatever period you are interested in (you could also add the count of donations over that period too). I can't see a way to only show the amount of the most recent contribution in SearchKit, but maybe someone else can.

You can find:

* Contacts
* with (optional) Contact Contributions with Status = Completed and Financial Type and Date Received as needed
* Group by Contact ID so you have one row per contact
* Add the Date Received and Total Amount columns on the top right of the table.
* Under Field Transformations, select Max for Date Received (so you are showing the largest date, i.e. the most recent donation date) and select Sum for Total Amount (so you'll have the sum of all donations in the time period).
* If you want a count of donations too, add the Contribution ID column and then select Count under Field Transformations.

The date might not come through in a spreadsheet-usable format (though that has just been fixed so won't be a problem in the future). If you need that sorted out, you can do it by adding a table and adjusting the date format with a rewrite.

# Answer
> 2 votes
If you use the Summary Fields extension or possibly Synopsis then you should be able to set up so you have a Custom Field which contains the data of their last donation, and then use the token for that Custom Field to get the outcome you want.

---
Tags: contacts, export
---


# Question
Title: Field set labels of contact form not translated
I just installed and enabled german language, however a few labels are not translated, that is the names of the field groups of the new/edit contact page 'Address', 'Communication Preferences, 'Demographics', 'Tags and Groups'. 'Contact Details' is translated fine.

Also the contact type names 'Individual', 'Household' and 'Organisation' are still in english in the Header 'New Individual/Household/Organisation' which I understand somewhat because these values can be altered in the administration settings. Shouldn't they be multilingual anyway?

Any help is greatly appreciated.

# Answer
Welcome to SE! Did you install in English? If so, see the docs and the fixoptiontranslation extension.
> 1 votes

---
Tags: localisation, language
---


title: Event Registration Form Customization

text:
# Question
Title: Event Registration Form Customization
I am new to CiviCRM, I have this problem, for example in New Event Registration, it shows: Tiny-tots (ages 5-8) - $ 800.00 Junior Stars (ages 9-12) - $ 1,000.00 Super Stars (ages 13-18) - $ 1,500.00

how can I remove the price amount label ,because I only want to show the amounts like: $ 800.00 $ 1,000.00 $ 1,500.00 which template engine file should I edit?

I would appreciate it if anyone could help me, thank you.

# Answer
The easiest thing to do would be just to replace all the labels in the price field with an ` `, then you will have just a bit of extra space there, followed by the dash and the amount.

Eliminating them completely so you can have the label on the backend but not show it on forms would not be easily done. You can see the code that generates these labels here, but you don't want to edit anything in core or else you'll have upgrade issues. I don't think you can alter any of this via form hooks, but maybe there is an argument to be made for adding a hook to make this possible.
> 0 votes

---
Tags: civievent, registration
---


# Question
Title: Is CiviVolunteer a live project or is it dead?
I see that is not update and not sure it works with the last version of CiviCRM, do you think is a dead project? is there an alternative?

# Answer
> 2 votes
CiviVolunteer has limitations I've found that unfortunately do not make it that user-friendly. My use has been with Wordpress, and there are conflicts with it on the front-end. I would consider it almost dead. The issue queue is long and it doesn't appear to being actively developed.

The movement is towards the Resources Management extension. Here's the documentation. It's more flexible, uses more of CiviCRM's core infrastructure and accounts for non-human resources.

# Answer
> 0 votes
gave me several errors and crashes in the execution of the forms. Unusable

---
Tags: civivolunteer
---


# Question
Title: Dashboard and menu not shown when using domain name instead of IP address
I have installed CiviCRM on WordPress and it works well when I set the WordPress Address (URL) and Site Address (URL) as an internal IP address.

After I replace both fields with my domain name, WordPress can still be reached and the login screen is shown. However, after logging in, the CiviCRM Home showed an incomplete page. Only "Access Keys:\_" and the footer are shown with no menu on CiviCRM top.

Can anyone help point me in the right direction about how to troubleshoot?

# Answer
Can you also update the base URL in `wp-content/uploads/civicrm/civicrm.settings.php`

Find for `CIVICRM_UF_BASEURL` in the file and update the domain URL. Should be something below

```
define( 'CIVICRM_UF_BASEURL', 'http://www.domainname.org/');

```
> 2 votes

# Answer
I installed wordpress and then via the Wordpress *Settings --\> General* I changed **WordPress Address (URL)** and **Site Address (URL)** from http:localhost to my public address of, say, http:123.123.123.123. I could then publicly connect to my website and login to Wordpress admin. I then performed the installation of the CiviCRM plugin. This created the file civicrm.settings.php in my /srv/www/wordpress/wp-content/uploads/civicrm/ folder. The CiviCRM menu bar is displayed OK.

I then searched the civicrm.settings.php file for localhost and searched it for 123.123.123.123. The results were as follows:

```
administrator@wpserver:/srv/www/wordpress/wp-content/uploads/civicrm$ cat civicrm.settings.php | grep localhost
   define( 'CIVICRM_UF_DSN'   , 'mysql://wordpress:mypassword@localhost/wordpress?new_link=true');
*      define( 'CIVICRM_DSN'         , 'mysql://cms:YOUR_PASSWORD@localhost/cms?new_link=true');
*      define( 'CIVICRM_DSN'         , 'mysql://civicrm:YOUR_PASSWORD@localhost/civicrm?new_link=true');
    define('CIVICRM_DSN', 'mysql://wordpress:mypassword@localhost/wordpress?new_link=true');
   define('CIVICRM_DB_CACHE_HOST', 'localhost');

administrator@wpserver:/srv/www/wordpress/wp-content/uploads/civicrm$ cat civicrm.settings.php | grep 123.123.123.123
$civicrm_paths['wp.frontend.base']['url'] = 'http://123.123.123.123/';
$civicrm_paths['wp.backend.base']['url'] = 'http://123.123.123.123/wp-admin/';
$civicrm_setting['domain']['userFrameworkResourceURL'] = 'http://123.123.123.123/wp-content/plugins/civicrm/civicrm';
   define( 'CIVICRM_UF_BASEURL'      , 'http://123.123.123.123');

```

In summary 5 x localhost and 4 x 123.123.123.123.

I did the whole installation again but this time in a different order. I installed Wordpress, then installed the CiviCRM plugin, then logged in to Wordpress admin and in Wordpress *Settings --\> General* I changed **WordPress Address (URL)** and **Site Address (URL)** from http:localhost to http:123.123.123.123. Now when I make a remote connection and login to Wordpress admin the CiviCRM Menu bar is **not** displayed.

If I search civicrm.settings.php then there are now 9 x localhost and no 123.123.123.123. Changing just the one setting as suggested above by Pradeep or changing all settings as Oscar suggested, does not solve the problem. Edit the civicrm.settings.php file and change localhost to 123.123.123.123 in the lines of code shown above. In my case, with Wordpress 6.2.2 and CiviCRM 5.61.3 these changes were at lines: 77, 78, 79, and 249.
> 0 votes

---
Tags: wordpress, menu, domain
---


# Question
Title: Calculating price for accommodation in CiviEvent (room type * number of nights)
I am creating an online registration form for a paid event in CiviCRM (on WordPress). We provide several kinds of accommodation (with different prices and availability).

I have figured out that I need a Price Set for things like electing specific meals.

But I have an issue to set a Price Field for the accommodation. The total price for accommodation depends on 2 thing: 1) the type of room (different price for different types), 2) number of nights. For now I have created a price field with radio buttons for every room type. But it only uses the unit price, but not multiply it by number of nights...

I have set a custom fields for arrival day and departure day, so I have the information about number of nights. But I do not know how to use it in order to automatically calculate the total price for accommodation. As the total price is shown during the registration and is send by email, I really prefer to have it calculated automatically and fully.

As as temporal dirty quick fix I can set several price fields (one for each type of room) and let the registrees to type number of nights. But it is very dirty, confusing, not dumb-proof and redundant... Any ideas?

# Answer
> 1 votes
I don't think there is a good solution in CiviCRM that will do this for you out of the box (Webform CiviCRM would, but that's Drupal). What I would do is have your set of radio buttons to select the room type, then add a numeric field for the total accommodation price, then use JavaScript to hide or disable that numeric field and then update it when the other relevant fields change. Someone could, of course, mess with the value of the field in the console so they don't pay as much, but that's probably not that likely.

---
Tags: civievent, online-registration
---


# Question
Title: Public membership register built on SearchKit Grid - how to link to individual detail form?
I have built a Membership Register using SearchKit / FormBuilder (https://cgdent.uk/civicrm/member-register-grid/). To enhance the Register, I would like to use the "Link" function in SK for the user to navigate to a detail record for the Individual member. I anticipate creating a separate form, using Formbuilder, to display the selected individual detail record (which might, for instance, include an image or logo). I cannot discover the syntax for the Link that will pass the id of the selected record to the detail form for public display. Is this even possible? I am using CiviCRM 5.58.1 and Wordpress.

# Answer
> 1 votes
You can pass an id to a search form by adding eg `/#?user_id=23` See the docs or here

# Answer
> 0 votes
I prefer to create a view using search kit and include the search kit in a form and use the id from the url to filter the result of the search kit to specific contact id

---
Tags: searchkit, formbuilder
---


# Question
Title: How can I determine which PHP Form class a displaying Form belongs to?
If I want to modify a form, should I use hook\_civicrm\_buildForm? This function requires a formName argument, so how can I identify the FormName or Form ID of the form I'm currently viewing on the site? Does CiviCRM have built-in debugging tools for this purpose, or do I need to use a third-party extension like Devel for Drupal?

I would greatly appreciate any assistance that anyone can provide. Thank you very much.

# Answer
Yes, to modify the form you can hook\_civicrm\_buildForm. If you print the $formName you should be able to see formname on screen.

I normally use Civi build in function for debuggings

1. To print on screen - CRM\_Core\_Error::debug('$formname', $formName);
2. To print in Civi logs - CRM\_Core\_Error::debug\_va('$formname', $formName);
3. Backtrace to show screen - CRM\_Core\_Error::backtrace();
4. Backtrace in log - CRM\_Core\_Error::backtrace('show', TRUE);
> 1 votes

# Answer
Appending &smartyDebug=1 to the URL will pop out a window that contains a lot of info including formName and formClass.
> 1 votes

---
Tags: forms
---


title: Setting up payment plans

text:
# Question
Title: Setting up payment plans
I was wondering how can you set up membership payment plans (ie. installments of £2 a month for a year)?

# Answer
If you go to Edit Membership Type and set Auto-renew to required with a duration of one month and a price of £2, does that do what you need or are you looking for something different?
> 1 votes

---
Tags: civimember, payment
---


# Question
Title: CIVICRM Upgrade in Joomla Environment - CRM updates but database aborts
I have a Joomla 3.11 environment running PHP 7.3 and CIVICRM 5.57. We have followed the steps to upgrade CIVICRM to 5.60/5.61 in Joomla. The CRM updates fine but it abends when trying to update the database. I have posted a screenshot of the results below. Any help would be greatly appreciated.

# Answer
> 0 votes
Please have a look at the solution in this question: DB update failure after update 5.60

**SOLUTION:**

After restoring the CiviCRM database from the backup, do the following:

Remove all records from civicrm\_job\_log table by command:

```
DELETE FROM civicrm_job_log;

```

Re-run the update process from the CiviCRM main window, and it will finish successfully.

---
Tags: upgrade, joomla, database
---


# Question
Title: How to tell CiviCRM used the new font for PDF mail label printing?
By using TCPDF\_FONTS::addTTFfont("/usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf", "TrueTypeUnicode");' I have successfully created the following three files droidsansfallbackfull.ctg.z, droidsansfallbackfull.z, and droidsansfallbackfull.php and copied into directory /var/www/html/wordpress/wp-content/plugins/civicrm/civicrm/vendor/tecnickcom/tcpdf/fonts.

I have added the following $civicrm\_setting\['CiviCRM Preferences'\]\['additional\_fonts'\] = 'droidsansfallbackfull'; in civicrm.settings.php. The characters have printed as square box, can someone please help, many thanks.

# Answer
> 0 votes
First, your setting needs to be an array:

\`$civicrm\_setting\['CiviCRM Preferences'\]\['additional\_fonts'\] = array('droidsansfallbackfull');

Then you'll need to actually set the font for the label at Administer - Communications - Label Formats. Edit the label type you're using and set the font in there.

# Answer
> 0 votes
the rest of the characters are ordinary English characters. I did the same exercise again, but I use droidsansfallback instead of of droidsansfallbackFull, it is WORKING now, Thanks for your help!

---
Tags: pdf, address-labels
---


# Question
Title: Contribution has no line_items. Shouldn't that be impossible?
On several sites (all currently running CiviCRM 5.58.1 but all having existed much longer) I have found contributions which have no line items -- that is, rows in `civicrm_contribution` that have no corresponding rows in `civicrm_line_item`.

Could this in any way be normal?

I'm unable to reproduce such a situation at will, except by manually deleting rows in `civicrm_line_item` via API or SQL. It seems any contribution record will, by design, have at least one line\_item, even if using a quick-config contribution instead of a visible price set, or if manually creating even a zero-dollar contribution in the back-end.

This situation leads to a fatal error ("Return value of CRM\_Financial\_BAO\_Order::getPriceSetID() must be of the type int, null returned") when attempting to generate a PDF invoice with "Download Invoice" for the given contribution, apparently on the assumption that this situation is not expected by core code.

**Question:** Is there any reasonable way -- i.e. not a bug -- that CiviCRM could be creating this situation? If so, I can explore a bug report on the above-mentioned fatal error. If not, I'll need to investigate further how this situation is arising on various sites. (And if you want to check on your own sites and comment on your findings, I'm naturally curious about that too.)

For reference, this query identifies the number of contributions having no line items:

```
SELECT count(*)
FROM
civicrm_contribution ctr
left join civicrm_line_item li on li.contribution_id = ctr.id
where li.id is null;

```

# Answer
> 2 votes
Consensus seems to be:

1. This is not normal behavior.
2. There are no known steps to repro, nor a known cause.

I've filed a bug report at https://lab.civicrm.org/dev/core/-/issues/4318 ; hopefully others who encounter this issue can add useful information there. (Would be great if we can find some actual steps to repro at will!)

---
Tags: civicontribute, line-items
---


# Question
Title: How can I utilize Drupal hooks for altering and validating forms in place of CiviCRM hooks?
My website is built on Drupal, and I prefer using Drupal hooks over CiviCRM hooks for modifying and validating forms, as I find Drupal modules easier to create and their hooks more user-friendly. However, when I follow the standard Drupal alter process, such as employing hook\_form\_alter and using krumo($form\_id) to print out and identify the form's ID, I am unable to obtain any output for CiviCRM forms.

Is it possible to use Drupal hooks instead of CiviCRM hooks for this purpose? I would greatly appreciate any assistance that anyone can provide. Thank you very much.

# Answer
The forms themselves aren't drupal forms so drupal hooks won't do anything, but you *can* put civi hook implementations in a drupal module, if you prefer using drupal modules over civi extensions.

Note there is a caching/bootstrap bug where the civi hooks won't get called from a drupal module if running via command line, but they work in the UI.
> 0 votes

---
Tags: drupal, hooks
---


# Question
Title: Is it possible to change the output of CRM_Core_Error::debug($form)?
Currently, when I inspect the form structure in CiviCRM using CRM\_Core\_Error::debug($form), the output is presented as text, which makes it difficult to investigate.

I'd like to find a way to make the output of CRM\_Core\_Error::debug($form) more user-friendly and similar to Drupal's Devel module's expandable items. I tried using krumo($form), but it didn't work. Any suggestions?

# Answer
> 1 votes
Yes, you can do similar to CRM\_Core\_Error::debug\_var but using the html dumper:

```
$dumpForm = (new \Symfony\Component\VarDumper\Dumper\HtmlDumper('php://output'))
  ->dump((new \Symfony\Component\VarDumper\Cloner\VarCloner())->cloneVar($form));
CRM_Core_Error::debug($dumpForm);

```

and then there's little expandy triangles on the right of expandable lines:

---
Tags: drupal, forms, debugging
---


# Question
Title: PHP Fatal error: Uncaught Error: Class 'Civi\\Setup' not found on install
I'm trying to install the CiviCRM plugin in wordpress, but never get to see the install page. When I want to go to "Install CiviCRM" button beneath the wp-admin-Dashboard it aborts with "critical error".

It is Debian 11.6 and everything from the repositories: WordPress 5.7.8, CiviCRM 5.33, MariaDB 10.5, PHP 7.4

Apache error log shows:

```
[Thu Mar 23 19:06:50.237128 2023] [php7:error] [pid 886] [client 172.16.0.10:46166] PHP Fatal error:
Uncaught Error: Class 'Civi\\Setup' not found in /usr/share/wordpress/wp-content/plugins/civicrm/includes/civicrm.admin.php:138
Stack trace:
#0 /usr/share/wordpress/wp-includes/class-wp-hook.php(292): CiviCRM_For_WordPress_Admin->run_installer()
#1 /usr/share/wordpress/wp-includes/class-wp-hook.php(316): WP_Hook->apply_filters()
#2 /usr/share/wordpress/wp-includes/plugin.php(484): WP_Hook->do_action()
#3 /usr/share/wordpress/wp-admin/admin.php(259): do_action()
#4 /usr/share/wordpress/wp-admin/options-general.php(10): require_once('/usr/share/word...')
#5 {main}
    thrown in /usr/share/wordpress/wp-content/plugins/civicrm/includes/civicrm.admin.php on line 138, referer: http://172.16.0.92/wp-admin/index.php

```

I did check that things mentioned at CiviCRM requirements page are in place.

I also tried chowning everything relevant to www-data without success.

What else could I think of?

# Answer
I'm seeing the same issue. Wordpress 6.2.2 Civicrm-5.61.4

Can someone point me to where setup.php gets loaded to define this class?

Fatal error: Uncaught Error: Class "Civi\Setup" not found in XX/civic/wp-content/plugins/civicrm/includes/civicrm.admin.php:248 Stack trace: #0 XX/civic/wp-includes/class-wp-hook.php(308): CiviCRM\_For\_WordPress\_Admin-\>run\_installer('') #1 XX/civic/wp-includes/class-wp-hook.php(332): WP\_Hook-\>apply\_filters('', Array) #2 XX/civic/wp-includes/plugin.php(517): WP\_Hook-\>do\_action(Array) #3 XX/civic/wp-admin/admin.php(259): do\_action('toplevel\_page\_c...') #4 {main} thrown in XX/civic/wp-content/plugins/civicrm/includes/civicrm.admin.php on line 248
> 0 votes

---
Tags: installation
---


# Question
Title: Are case activity revisions no longer working?
Not sure when this changed. I'm using the master branch. There's a couple related things:

1. The default for "logging" on the Misc admin screen is off, but so is the default for "Enable Embedded Activity Revisions" on the CiviCase settings admin screen. So by default nothing is logged anymore.
2. Even if I turn on the setting on the civicase settings screen, it seems that there's then two sub-issues:

(a) a quick look at the code used by the activity form suggests it doesn't use this setting, and

(b) it looks like it should be making revisions anyway, but doesn't.

I can reproduce on dmaster.demo.

Anybody know when this changed and/or is it an intended change?

**EDIT**: This line 453 in postProcess is *part* of the problem, because it overwrites part of the passed in $params, but there's more going on somewhere too. Removing the line or reversing the arguments causes different problems.

`$params = array_merge($oldActivity, $params);`

# Answer
> 1 votes
Looks like you answered your own question... and wrote a whole extension to migrate sites off activity revisions! https://civicrm.org/extensions/caseactivityrevisionmigrator

---
Tags: civicase, activities
---


# Question
Title: Mailing a report at the same time - how?
The facility to email reports using scheduled tasks is good and works. However we'd like to email a report at 5pm each day. Having started this task to run after 4:59 on a certain day it is now slipping every few days to a later time. We run cron every 15 minutes so a week ago it ran at 5pm, and it's now slipped to 5:30pm in one week. Is there a way to email a report at a fixed time each day?- A few minutes difference doesn't matter. I don't think 'Scheduled Reminders' can do this as it needs some kind of trigger.

# Answer
### CronPlus Extension

Take a look at the CronPlus extension to execute tasks in more accurate way and this SE question.

Alternatively, you could setup a cron task and script to do this like below:

### Cron task

```
0 17 * * * su www-data -s /bin/bash -c "/home/example/cronscripts/send_daily_reports.sh"

```

The `send_daily_reports.sh` file.

```
# 7 A Report title
# 8 Another Report title
for rept in 7 8
do

    /usr/bin/php /usr/local/bin/wp --user=civicron --url=https://example.org --require=/var/www/example/wp-content/plugins/civicrm/wp-cli/civicrm.php --path=/var/www/example civicrm api Job.mail_report instanceId=${rept} format=csv --allow-root  > /dev/null 2>&1

done

```

One benefit of using the CLI cron task approach is that in the scheduled jobs UI, my experience is multiple reports cannot send at the same time, even if you have multiple jobs created.

**Update 3/20/2024**: As of 5.71.1 and likely much earlier, creating multiple "mail\_report" jobs works OK now.
> 2 votes

---
Tags: cron, mailing, scheduled-reminders
---


# Question
Title: Link to Case from SearchKit Table Display
I'd like to build a report in SearchKit/Afform to replace the default Case tab so that I can organize cases by type a bit better but I can't figure out how to add a link to open the case in the table display.

What should I be looking into to learn how to make that link? Screenshot included below of the specific spot I'd like to add that link to "Manage Case" or "View Case" or something along those lines.

# Answer
I would just do this in the display and make the case id field itself a link to `civicrm/contact/view/case?action=view&reset=1&id=[id]&cid=[Case_CaseContact_Contact_01.id]`. The tokens would depend on your search joins - you'll find them in the `</>` dropdown. The above assumes cases are the main entity, joined to case-clients.
> 3 votes

---
Tags: civicase, searchkit
---


# Question
Title: Problem saving field mappings for export
As a CiviCRM admin, I have no problem saving field mappings for export, but it isn't working properly for non-admins. I can't see any permissions that might be missing (I don't want to give them full admin permissions). The problem showed up with exporting participants, but the problem is also there for contacts. All works fine up to the actual save but it then hangs with a spinning wheel on the final save button. I thought it might be the same as What permission set allows a user to be able to save a field mapping? but the symptons are different there in that they cannot see the save option at all.

Using CiviCRM 5.35.1 on WordPress.

# Answer
I think this was fixed a couple weeks ago. Can you test it on master?
> 0 votes

---
Tags: field-mapping
---


# Question
Title: Are there 'cv' commands for these operations?
Using `cv`, how can I can?

* rebuild triggers: `civicrm/menu/rebuild?reset=1&triggerRebuild=1`

and

* rebuild menu: `civicrm/admin/setting/updateConfigBackend&reset=1`

# Answer
Trigger rebuild

```
cv api4 System.flush triggers=1

```

Civi Menu rebuild and Cache clear

```
cv api4 System.flush

```
> 8 votes

---
Tags: cv
---


title: Schedule reminders by the tag info

text:
# Question
Title: Schedule reminders by the tag info
We're using the tab 'tags' to clasify certain members that belong to a specific working group.

Is it possible to schedule a reminder by the type of tag?

Thank you in advance for all the help!

# Answer
> 1 votes
You can create group with contacts who has tag and restrict recipients in reminders based on group.

---
Tags: tags
---


# Question
Title: civievent delete download calendar at bottom of registration page
I'm trying to use civiEvent for application to a seminar this Fall which will be 10 sessions on irregular dates. I would like to eliminate the Start Date, "When", that civiEvent requires and also the "Download iCalendar..." and "Add event to Google Calendar" widgets at the bottom.

Is there a straightforward way of accomplishing these 3 goals?

# Answer
As said by Lara SG, You can either skip the Info page and redirect the user to the registration page

Or you can add below css

```
.crm-event-info-form-block .event_date_time-section, .crm-event-info-form-block .iCal_links-section {
   display: none;
}

```

You can add the css via one of the method below

1. Include the css in your theme style.css file
2. Create a new file civicrm.css, add the above code, and place the file in /sites/default/files folder. In Resource url settings(CiviCRM \>\> Administrator \>\> System settings \>\> Resource url) set the Custom CSS URL to \[cms.root\]/sites/default/files/civicrm.css
3. Add a drupal block, add the css and include the block on /civicrm/event/info page.
> 1 votes

---
Tags: civievent
---


title: Oauth Microsoft Exchange authentication

text:
# Question
Title: Oauth Microsoft Exchange authentication
Has anyone set up CiviMail to use Oauth to connect to Microsoft Exchange? The CiviCRM documentation deviates from that provided by Microsoft. Also, you can't add the account are trying to set up, as you get this error:

*Application* is not configured as a multi-tenant application. Usage of the /common endpoint is not supported for such applications created after '10/15/2018'. Use a tenant-specific endpoint or configure the application to be multi-tenant.

# Answer
> 1 votes
In CiviCRM 5.59+, you can enter the tenant ID into the CiviCRM OAuth setup screen.

---
Tags: civimail, oauth
---


# Question
Title: Error with online membership payment "Payment Method is a required field."
WP 6.2.2 civi 5.61.1 For online membership signup or renewal(withchecksum) the form will not submit. With or without priceset Error is "Payment Method is a required field." Works OK when logged in so assuming permissions - although I thought checksum would override that - the form does prefill OK. Checksum link does not fill membership ID eg civicrm/contribute/transact/?reset=1&id=1&cs=36d4d672600cb6aa71cd87f44b48a073\_1685662618\_168&cid=2157&mid= Filling it manually makes no difference. Anonymous user has all profile & membership permissions plus on-line contribute.

# Answer
Can you make sure all the membership types included on the page have either auto-renewal have same options i.e required or optional or no-renewal.
> 2 votes

---
Tags: civimember
---


# Question
Title: New civiEvent template URL redirecting to Events Template page
In civiCRM 5.59.3 on Drupal 9, I'm trying to create a custom civiEvent template. I've gone through all the tabs and at the bottom of Info and Settings there is a unique URL. However, this URL is being redirected to the Events Templates page.

Where is this happening and how do I correct it?

# Answer
> 1 votes
I don't think the unique URL there should go anywhere (it shouldn't really be there at all). You can't register for an event template, only an event itself. You have to create an event from the event template and then the URL for that event will work.

# Answer
> 0 votes
My bad. I had not yet created an event from this new template. Once I did that, it worked.

---
Tags: civievent
---


# Question
Title: I am trying to install CIVICRM on Drupal 9.4.1 using composer as per instruction found here https://docs.civicrm.org/installation/en/latest/drupal/
When i enter "composer require civicrm/civicrm-{core,packages,drupal-8}:'~5.61'" getting error like " Could not parse version constraint '~5.61': Invalid version string "'~5.61'""

how to resolve this issue ?

# Answer
Are you on windows? You'll need to use `"` instead of `'`.
> 1 votes

---
Tags: installation
---


title: Documents tab Network error

text:
# Question
Title: Documents tab Network error
Recently i upgraded to 5.61.4. Everything works good except documents tab. Every time i click on documents tab i got error " Network Error Unable to reach the server. Please refresh this page in your browser and try again."

Any help please. Thanks

# Answer
Yes the extension has php8 issue, I have submitted a fix for it, If you apply the patch it should work for php8
> 2 votes

---
Tags: error
---


title: Renewing members being flagged as new

text:
# Question
Title: Renewing members being flagged as new
Here are our membership rules, they seem ok. We're using CiviCRM 5.58.1 with Wordpress. After a recent set of upgrades we are experiencing an issue where current members who are renewing their membership are now flagged as new members after renewing. My guess is that this is as a result of Civi being unable to match the fields correctly. Is anyone else having this issue and do you have any suggestions as to how to resolve the issue. Thanks!

# Answer
> 0 votes
When you say they're "flagged as new", I assume you mean their Membership Status field is marked "New".

If so, then someone has probably configured the membership statuses incorrectly. Go to **Administer menu » CiviMember » Membership Status Rules**. My guess is someone has modified the *New* status to use *Start Date* and not *Join Date*.

Below is a screenshot of the statuses as they appear on a new installation of CiviCRM.

---
Tags: wordpress, civimember
---


# Question
Title: Contacts custom field of FILE type- how to search if file attached?
I created a custom field type of FILE and it does have Searchable=YES but it does not come up as an option to search in Advanced Search.

I am trying to list contacts that have a file attached to this file type field (versus contacts that have not had a file attached).

Note that the other custom fields in the field set appear in the Advanced search, but not the File one.

Is this possible to search like this?

Thanks

# Answer
You can use SearchKit to search for entities where your field Is Empty or Not Empty.

For Advanced Search, I don't think you should be able to set searchable on a File custom field. Isn't the searchable option hidden when you choose Data Type = File?
> 1 votes

# Answer
To get around this issue, I was able to use Contact Reports then Constituent Summary and then I could choose the customn fields, including the FILE field, as an option in the report, and then I sorted on that File field to pull up all the contacts with a file attached.
> 1 votes

---
Tags: wordpress, custom-fields
---


# Question
Title: Mosaico Template List Missing [error] Afform error: cannot process ~/afsearchMosaicoTemplateList/afsearchMosaicoTemplateList.aff.html: malformed enti
Log viewer error \[error\] Afform error: cannot process ~/afsearchMosaicoTemplateList/afsearchMosaicoTemplateList.aff.html: malformed entity name ()

Problem I'm having is that when I go to: Mosaico templates my list of custom templates are gone as well as options to create new ones. I can; however, see them when I go to "new mailing" and start to send an email. I can edit them from there.

Steps I've taken so far:

Clear the cache - didn't help

Next steps: Disabled mosaico and flex mailer extensions deleted old mosaico file directory refreshed ext. enabled both flex mailer and mosaico Still same error and problem

Other steps: I tried re-installing the flex mailer too same as steps above, and it actually made everything worse, so I reverted back.

I've tried to look around in console, but I do not understand what the errors I'm getting mean or what to really look for. I'm attaching a screenshot of interface of mailer and console while looking at the mosaico template page.

If it helps, I'm also getting this log error but I think it is from Search Kit issues I'm having as it appears when I try to click "actions" and "print/merge" documents. But... Just in case other error is: com\_civicrm/civicrm/CRM/Core/Error.php(441): CRM\_Core\_Error::backtrace("backTrace", TRUE)

# Answer
What I found out was Civigrant was installed but disabled. It must be enabled or completely uninstalled. Something conflicts. I had to uninstall and reinstall Mosaico, Search Kit, and Form Core (I believe that is the full list) and enable them 1 at a time in this order: Search kit, form core, then Mosaico. That worked for me.
> 1 votes

# Answer
We hit this too, but found that uninstalling CiviGrant was sufficient, we did not uninstall/reinstall Mosaico etc (but maybe something else will bite us yet)
> 0 votes

# Answer
Removing CiviGrant (from ext file system) and various iterations of disabling, uninstalling, deleting from ext file system (after taking a backup) of Search\_kit, Afform, and Mosaico did not permit Mosaico templates to show up for me.
> 0 votes

# Answer
In my case, with a fresh CiviCRM 5.61.4. no Mosaico tempates show up after downloading and installing Mosaico.

When trying to create a template of type 'Newsletter' I receive this message in the UI:

ERROR Sorry an error occurred and your information was not saved

Removing CiviGrant (from ext file system) and various iterations of disabling, uninstalling, deleting from ext file system (after taking a backup) of Search\_kit, Afform, and Mosaico did not permit Mosaico templates to show up for me.
> 0 votes

---
Tags: error, mosaico, templates, logs, flexmailer
---


# Question
Title: Undefined array key "merge_same_household"
I'm trying to **export contacts** from the list in CiviCRM but got a visual warning which does not let me proceed:

> Warning: Undefined array key "merge\_same\_household" in /bitnami/wordpress/wp-content/uploads/civicrm/templates\_c/es\_MX/%%00/00A/00AEAD8F%%Select.tpl.php on line 86
>
> Warning: Trying to access array offset on value of type null in /bitnami/wordpress/wp-content/uploads/civicrm/templates\_c/es\_MX/%%00/00A/00AEAD8F%%Select.tpl.php on line 86

I've navigated to the path and opened the file ***"00AEAD8F%%Select.tpl.php"*** on line **86**.

```
  <div class="content crm-content-mergeSameHousehold">
     <?php echo $this->_tpl_vars['form']['merge_same_household']['html']; ?>
  </div>

```

I'm not sure what the problem is. I was thinking about **replacing the file** with a new one downloaded from the repository **or** even **deleting** it although I'm not sure.

# Answer
This warning will be fixed in future versions. In the meantime, changing the error\_reporting level should remove it.
> 2 votes

---
Tags: wordpress, error, php, templates, custom-templates
---


# Question
Title: Grouping custom field sets into one Tab?
As we grow, the number of custom field sets keeps growing and getting added onto.

We add each new custom field set as a TAB, which works okay, except this number of tabs keeps growing.

Is there a way to group several custom field sets together, and then have them all appear under one tab?

EXAMPLE: We have 6 custom field sets. Three of the custom field sets contain legacy data, that is really not used anymore, but is there "just in case". It would be great if I could create a new TAB called LEGACY and then these three field sets would appear under that legacy tab.

There are also other custom field sets that would make sense to group together as well.

From what I can see this is not possible currently, so I guess this becomes a Feature Request!

# Answer
> 2 votes
you could create a searchkit for each custom group and add them in formbuilder and include it on contact summary page

---
Tags: wordpress, custom-fields
---


title: Mosaico not sending as HTML mails

text:
# Question
Title: Mosaico not sending as HTML mails
EDIT

We're not sure if this is due to a PHP update at our ISP but the Civi Mosaico instance has stopped sending as HTML mails and writes the HTML as code into the mails.

All the WordPress plugins are up to date and all the Civi Extensions are up to date.

Thank you.

See email source:

```
Original Message
Message ID  <E1p8d8U-000BK7-F4@dedi305.cpt4.host-h.net>
Created at: Fri, Dec 23, 2022 at 10:10 AM (Delivered after 19 seconds)
From:
To:  <>
Subject:    [CiviMail Draft] 10:09am
SPF:    SOFTFAIL with IP 196.40.103.35 Learn more
DKIM:   'FAIL' with domain  Learn more

Download Original   Copy to clipboard
Delivered-To:
Received: by 2002:a59:1a14:0:b0:37f:b9bf:8335 with SMTP id a20csp167914vqa;
        Fri, 23 Dec 2022 00:10:53 -0800 (PST)
X-Google-Smtp-Source: AMrXdXswREmdQwvOp5x1+tBeQENFgpBuFAaIJe3TRaShsvl09VSVMSOcu0eKUY1OeAz6cmT8Hlx9
X-Received: by 2002:a17:906:1414:b0:78d:f455:b5dd with SMTP id p20-20020a170906141400b0078df455b5ddmr6479979ejc.29.1671783053463;
        Fri, 23 Dec 2022 00:10:53 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1671783053; cv=none;
        d=google.com; s=arc-20160816;
        b=iDkJFgK3KItqvcm/TJlsgV1NWILz61GsugHPxwVLrXBhH3Oj5aJng0PNJSDYLIiLBW
         IRsurJX6oQ84HEq8O0GuwukuIzUrP0SwpRuUgByJAL0eq+XRGVJLiAwqLlsI4Cw3ylTI
         I9VR2Q7ffFyZf39I04Tjz4cMBc1FNurOiEzDRf1Uu1mJgKosAJoU5jNby1ZEjkkunCem
         nWMh0qBtHNKVWUHF2HE/H5NlYU5ZZBfcpkZA7dusEKLMBgWtCXZyR1oSpwrpgm27uuZ/
         SfWqfMAAkni2prGA8yWHHuXz9fhj3aARTp2Tq4jqDQy+Gd/oCbeiYq9YZJc9viZc7WCI
         ohwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
        h=from:date:message-id:mime-version:subject:to:dkim-signature;
        bh=xyL/WgcSuvnUfHnEVdiH0rLeJVsHQ4C8DbdIPwMaNYo=;
        b=gxPGWJxx/sGtsSm7ABihI2x6Q1OHFyN7ScrrD8Vy3heNJ2wiqshNNgipRLzWUssyxO
         h4taH4gX8+lTHk9qPHCnc1eOgpAVUncks61GpGIq1clz9ZzMwr36xU1wDBInYTww5y1U
         QOrnKpe3r3Dg2BrHzmAMCUpiikUf/XVzfp7JzXkSSzVMlDzdYJ4HeflixzO67bIJayci
         lhQG5EkVl4M9EjeMMojrzZcZgPZMxqF5MLAI9mIrJkMtXo71j9ZGWxJhER123AoWmptd
         SC9oZb5ifj8ockE0OUsJTNwvTte+fxtZisbQGrLfi2sMyDLotFw7jRbQgJk5EqZVYEoq
         AKZQ==
ARC-Authentication-Results: i=1; mx.google.com;
       dkim=temperror (no key for signature) header.i=@ header.s=xneelo header.b=CA9VssWq;
       spf=softfail (google.com: domain of transitioning  does not designate 196.40.103.35 as permitted sender) smtp.mailfrom=
Return-Path: <>
Received: from outgoing44.cpt4.host-h.net (outgoing44.cpt4.host-h.net. [196.40.103.35])
        by mx.google.com with ESMTPS id ww2-20020a170907084200b007416e100f3dsi2068750ejb.986.2022.12.23.00.10.52
        for <>
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Fri, 23 Dec 2022 00:10:53 -0800 (PST)
Received-SPF: softfail (google.com: domain of transitioning  does not designate 196.40.103.35 as permitted sender) client-ip=196.40.103.35;
Authentication-Results: mx.google.com;
       dkim=temperror (no key for signature) header.i=@ header.s=xneelo header.b=CA9VssWq;
       spf=softfail (google.com: domain of transitioning  does not designate 196.40.103.35 as permitted sender) smtp.mailfrom=
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=; s=xneelo; h=From:Date:Message-Id:MIME-Version:Subject :To:reply-to:sender:cc:bcc:in-reply-to:references:content-type: content-transfer-encoding; bh=xyL/WgcSuvnUfHnEVdiH0rLeJVsHQ4C8DbdIPwMaNYo=;
     b=CA9VssWq3cXUYy04g2PUA4gVSE6iY84TNdSK3MynAb0DEAO4sBdDP7i6Ad8Lm7CatRLldtAqUw L5qrt/YHcZBInS0dlsAMBGi0wtDCy+myZ3MNYBxkOwxiCMRl6sc0VpdJUlJF6BnUZ+MWOf1n48nFv nxksQI/GPK+iTE0pBW6WTTMacF7Y+UYdwqs/8e+qRJOVNrbZk/9u1lZNm2EQMhYKUcXUkhIUbvuy3 tDVJ49uQ9n95FtT+hPOyrDRmNTbsK77yZiXkw71utAG4tDGLUs4UyzSIbSpVkyjPdFwMDxwVgFGpu kqTOJkWSRo1TyCgPbPgDoQ99XtIt9vf0YImqQ==;
Received: from dedi305.cpt4.host-h.net ([197.221.0.197]) by antispam7-cpt4.host-h.net with esmtpsa (TLSv1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <>) id 1p8d8f-0005By-7r for ; Fri, 23 Dec 2022 10:10:51 +0200
Received: from localhost ([127.0.0.1] helo=dedi305.cpt4.host-h.net) by dedi305.cpt4.host-h.net with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <>) id 1p8d8U-000BKT-LF for ; Fri, 23 Dec 2022 10:10:34 +0200
Received: from highwjmbkf by dedi305.cpt4.host-h.net with local (Exim 4.92) (envelope-from <b.108.22813.8094da182867d219@>) id 1p8d8U-000BK7-F4 for ; Fri, 23 Dec 2022 10:10:34 +0200
To:  <>
Subject: [CiviMail Draft] 10:09am
X-PHP-Originating-Script: 1594:mail.php
MIME-Version: 1.0 X-CiviMail-Mosaico: Yes List-Unsubscribe: <mailto:u.108.22813.8094da182867d219@> Precedence: bulk job_id: 108 From: "Highway Hospice" <fundraising@> Return-Path: b.108.22813.8094da182867d219@ X-CiviMail-Bounce: b.108.22813.8094da182867d219@ Content-Type: multipart/alternative;
  boundary="=_0964fc6b5afd6aeec2ef8cae672582fa" Date: Fri, 23 Dec 2022 10:10:34 +0200
Message-Id: <E1p8d8U-000BK7-F4@dedi305.cpt4.host-h.net>
Date: Fri, 23 Dec 2022 10:10:34 +0200
X-Original-Sender: b.108.22813.8094da182867d219@
From:
X-Original-Sender: b.108.22813.8094da182867d219@
X-Spoofed: [ b.108.22813.8094da182867d219@ ] may be spoofed
X-Hetz-Sender-Domain:
X-Originating-IP: 197.221.0.197
X-SpamExperts-Domain:
X-SpamExperts-Username:
Authentication-Results: host-h.net; auth=pass (login) smtp.auth=@
X-SpamExperts-Outgoing-Class: ham
X-SpamExperts-Outgoing-Evidence: Combined (0.23)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT8WtF6gmR1WY5QmYklOfJt4PUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5w9wnaFLRMkf1Y4W+ClMbQqvWPMmWE2UYfqyb5H+bsYmtcV PSoHm0W/3adFfiYl2nv8cqJA6bYm9N7bRNMCupfl/T4GcPvCLvSpAEEGy7kYxuMa88YE66E9fBno Af7rqCusOKjAUmV0C9KuYSjH4lBdhFHN71l54rACCRHfNouFNpuBoKRbycab+xivlMZxSt1QjgNL hnE6LCVa09fPSMLwzYS69kWBtyjohdIfAyfx0Iq36YELusVp6zmtkp3fm8ksOdAaBGAeOKhTx+m3 vF4LsArQv+5M23dYLDjUbMZvVmr6m72Gjb0JXKncO30D1zlDSsJwEdqFYrGPm5xKlgioGDNzGcHp 3NzukYfScMBG+Tsc4tIGARlLnrAnWgFQGY0xkLWT8SflyVwc4NCAOp/dlP/OvlXh0HxD3892FDDK gakiBgEuYOkqHJLT+h0dldSgx1CrDezibyV/g/OGiJpnovIJzflUDtG9b8caIarEvfvngz/pdm3F YEnIWlgrDkfUJleWftUulkbC12DciiOUAQy3WRoWhjJ4ABRp4spTBKsH/WzE78WB+6LKJkk4wWD9 KG0tzgOmmMGaUP9zdaSt+fXBg4AgtUTWwY0EZbFdY0Y475ECIEdzEsxR9IQpYAq9Q1/YcKzYTCaM s2+j9wH3Q1T0OnzHr9QTD70ParuHFtM+m4WpRRDP6YzwkAPgQJbLUn1IyorvEsb916X6hS2cYjIJ 6FvP59D5/tcVDyIlYJek2rIwTUPUT8QT3vILHyjSgsurxMQHlPSHajqDoBSIPAlbDjazCbhs7qBp ykynMq3lH+/mc7mO0J3xwAs1o4F30afXq/Il88LGHIf1OBs3SpJ8iA7mf/iPUTAhEEkrbAUeWi7B D+eU9T0DQavwqFLBkhUceQvg7Kqn0sE1nXryKm1ntl0yyWbH0PqjkrVu2M5IvaqorltwZOQvoHZj olVKHHO8KOMZCmc82QXQzBdE/0WUF6s9jksWWuRuNY/WRg==
X-Report-Abuse-To: spam@antispammaster.host-h.net

--=_0964fc6b5afd6aeec2ef8cae672582fa
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=utf-8

         [1]

MERRY CHRISTMAS

Thank you all for the support of our largest annual fundraiser. May you,
your family and friends enjoy a blessed Christmas, and a joyous 2023. You
can still get your globe through to the end of December. We will keep the
lights on for you. Get Your Globe - Only R60 each [1]

         [1]

As we are reminded every day of the value of special time with friends and
family, we just love this time of year. Memories shared and enjoyed through
the festive season are particularly memorable. With thanks for the support
through 2022, we hope you embrace the times shared and wish you all a
blessed 2023.

We thank you all

The Highway Hospice provide care for the terminally ill 002-409NPO

Don't want to receive any more email from us?
Simply unsubscribe [2] from our list.

Links:
------
[1] https://crm./civicrm/mailing/url/?u=237&qid=22813-globe-tree-of-light/
[2] https://crm./civicrm/mailing/url/?u=238&qid=22813-content/uploads/civicrm/ext/uk.co.vedaconsulting.mosaico/packages/mosaico/templates/tedc15/*|UNSUB|*

--=_0964fc6b5afd6aeec2ef8cae672582fa
Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<html><head>

</head>
    <body style="background-color: #202020; color: #FFFFFF; margin: 0;" text="#FFFFFF">
        <center><table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" style="background-color: #202020;" id="ko_heroBlock_1">

                <tbody><tr>
                    <td align="center" height="100%" valign="top" width="100%" style="background-color: #F5F5F5;">
                        <!--[if mso]>
                        <table align="center" border="0" cellspacing="0" cellpadding="0" width="660">
                        <tr>
                        <td align="center" valign="top" width="660">
                        <![endif]-->
                        <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 660px;">
                            <tbody><tr>
                                <td align="center" valign="top" style="padding-top: 20px;">
                                    <!-- // HERO WITH LEFT CTA -->
                                    <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color: #FAFAFA; border-top: 1px solid #FFFFFF; border-bottom: 2px solid #E0E0E0; max-width: 660px;">
                                        <tbody><tr>
                                            <td align="center" valign="top" style="font-size: 0; padding: 10px;">
                                                <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
                                                    <tbody><tr>
                                                        <td align="center" valign="bottom">
                                                            <a target="_new" href="https://crm./civicrm/mailing/url/?u=235&qid=22813" rel='nofollow'><img alt="Get your Globe" height="200" width="640" style="border: 0; height: auto; max-width: 640px; vertical-align: bottom; width: 100%;" src="https://crm./civicrm/mosaico/img/?src=https%3A%2F%2Fcrm.%2Fwp-content%2Fuploads%2Fcivicrm%2Fpersist%2Fcontribute%2Fimages%2Fuploads%2FTreeOfLightTop_f41063eeb004001a4d86dd1078e7cd43.png&method=cover&params=640%2C200"></a>
                                                        </td>
                                                    </tr>
                                                </tbody></table>
                                                <!--[if mso]>
                                                <table align="left" border="0" cellspacing="0" cellpadding="0" width="640">
                                                <tr>
                                                <td align="left" valign="top" width="340">
                                                <![endif]-->
                                                <div style="display: inline-block; max-width: 340px; vertical-align: top; width: 100%;">
                                                    <table align="center" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 340px;">
                                                        <tbody><tr>
                                                            <td align="center" valign="top" style="padding: 10px 10px 0;">
                                                                <h2 style="color: #202020; font: 24px/28px Rawlinson, Georgia, 'Times', 'Times New Roman', serif; margin: 10px 0; padding: 0; text-align: center;">Merry Christmas</h2>
                                                                <p style="color: #606060; font: 16px/22px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; margin: 0 0 10px 0; padding: 0; text-align: center;">Thank you all for the support of our largest annual fundraiser.  May you, your family and friends enjoy a blessed Christmas, and a joyous 2023.  You can still get your globe through to the end of December.  We will keep the lights on for you.</p>
                                                                <a target="_new" href="https://crm./civicrm/mailing/url/?u=235&qid=22813" rel='nofollow' style="background-color: #5A712D; border-top: 10px solid #5A712D; border-right: 20px solid #5A712D; border-bottom: 10px solid #5A712D; border-left: 20px solid #5A712D; border-radius: 4px; box-shadow: #E0E0E0 0 2px 0; color: #FFFFFF; display: inline-block; font: 18px/24px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; letter-spacing: .5px; margin: 5px auto 10px; text-align: center; text-decoration: none;">Get Your Globe - Only R60 each</a>
                                                            </td>
                                                        </tr>
                                                    </tbody></table>
                                                </div>
                                                <!--[if mso]>
                                                </td>
                                                <td align="right" valign="top" width="300">
                                                <![endif]-->
                                                <div style="display: inline-block; max-width: 300px; vertical-align: top; width: 100%;">
                                                    <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 300px;">
                                                        <tbody><tr>
                                                            <td align="center" valign="top">
                                                                <a target="_new" href="https://crm./civicrm/mailing/url/?u=235&qid=22813" rel='nofollow'><img alt="Get your Globe of Remembrance here" height="200" width="300" style="border: 0; height: auto; max-width: 300px; vertical-align: bottom; width: 100%;" src="https://crm./civicrm/mosaico/img/?src=https%3A%2F%2Fcrm.%2Fwp-content%2Fuploads%2Fcivicrm%2Fpersist%2Fcontribute%2Fimages%2Fuploads%2FTreeOfLightKid_dc908126dfb5985ced08d749b2ea9f8b.png&method=cover&params=300%2C200"></a>
                                                            </td>
                                                        </tr>
                                                    </tbody></table>
                                                </div>
                                                <!--[if mso]>
                                                </td>
                                                </tr>
                                                </table>
                                                <![endif]-->
                                            </td>
                                        </tr>
                                    </tbody></table>
                                    <!-- HERO WITH LEFT CTA // -->
                                </td>
                            </tr>

                        </tbody></table>
                        <!--[if mso]>
                        </td>
                        </tr>
                        </table>
                        <![endif]-->
                    </td>
                </tr>
                <!-- 1-COLUMN SCAFFOLD // -->
            </tbody></table><table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" style="background-color: #202020;" id="ko_footerBlock_3">

                <tbody><tr>
                    <td align="center" height="100%" valign="top" width="100%" style="background-color: #202020;">
                        <table align="center" border="0" cellpadding="0" cellspacing="0">
                            <tbody><tr>
                                <td align="center" valign="top" style="padding: 40px 20px 60px;">
                                    <p style="color: #e0e0e0; font: 14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin: 0 0 2px 0; padding: 0; text-align: center;" data-mce-style="color: #e0e0e0; font: 14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin: 0 0 2px 0; padding: 0; text-align: center;">As we are reminded every day of the value of special time with friends and family, we just love this time of year.  Memories shared and enjoyed through the festive season are particularly memorable.  With thanks for the support through 2022, we hope you embrace the times shared and wish you all a blessed 2023. </p><p style="color: #e0e0e0; font: 14px/18px Frutiger,
'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin: 0 0 2px 0; padding: 0; text-align: center;" data-mce-style="color: #e0e0e0; font: 14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin: 0 0 2px 0; padding: 0; text-align: center;"><br data-mce-bogus="1"></p><p style="color: #e0e0e0; font: 14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin: 0 0 2px 0; padding: 0; text-align: center;" data-mce-style="color: #e0e0e0; font: 14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin: 0 0 2px 0; padding: 0; text-align: center;">We thank you all </p>
                                    <p style="color: #aaaaaa; font: 14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin: 0 0 20px 0; padding: 0; text-align: center;" data-mce-style="color: #aaaaaa; font: 14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin: 0 0 20px 0; padding: 0; text-align: center;">The Highway Hospice provide care for the terminally ill 002-409NPO<br></p>
                                    <p style="color:#AAAAAA; font:14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin:0 0 10px 0; padding:0; text-align:center;"><br data-mce-bogus="1"></p><p style="color:#AAAAAA; font:14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin:0 0 10px 0; padding:0; text-align:center;"><br data-mce-bogus="1"></p><p style="color:#AAAAAA; font:14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin:0 0 10px 0; padding:0; text-align:center;"><br data-mce-bogus="1"></p><p style="color:#AAAAAA; font:14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin:0 0 10px 0;
padding:0; text-align:center;"><br data-mce-bogus="1"></p><p style="color:#AAAAAA; font:14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin:0 0 10px 0; padding:0; text-align:center;"><br data-mce-bogus="1"></p><p style="color:#AAAAAA; font:14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin:0 0 10px 0; padding:0; text-align:center;"><br data-mce-bogus="1"></p><p style="color:#AAAAAA; font:14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue', Helvetica, Arial, sans-serif; ; margin:0 0 10px 0; padding:0; text-align:center;"><br data-mce-bogus="1"></p><p style="color:#AAAAAA; font:14px/18px Frutiger, 'Frutiger Linotype', 'Helvetica Neue',
Helvetica, Arial, sans-serif; ; margin:0 0 10px 0; padding:0; text-align:center;">Don't want to receive any more email from us?<br>Simply <a href="https://crm./civicrm/mailing/url/?u=236&qid=22813" rel='nofollow' target="_blank" style="color:#E0E0E0;">unsubscribe</a> from our list.</p>
                                </td>
                            </tr>
                        </tbody></table>
                    </td>
                </tr>
                <!-- 1-COLUMN SCAFFOLD // -->
            </tbody></table></center>

</body></html>
<img src="https://crm./civicrm/mailing/open/?qid=22813" width='1' height='1' alt='' border='0'>
--=_0964fc6b5afd6aeec2ef8cae672582fa--

```

# Answer
> 0 votes
Speculating: the shift from php 7.4 to php 8.1. This has messed with my mosaico output also. Rolling back to 7.4 fixes the problem so far, but at some point one must move on. Back to problem now and 7.4 is deprecated now, don't want to roll back this time.

# Answer
> 0 votes
We've just come across this and found it works on debian

php8.1-common 8.1.18-1+0~20230517.40+debian11~1.gbpad774c

but not on cpanel

ea-php81.x86\_64 8.1.19-2.3.1.cpanel @EA4

A workaround was found, switch to smtp in civimail config.

---
Tags: civimail, mosaico
---


# Question
Title: Can you disable or organize searchkit searches?
Searchkit has become so powerful, we use it in place of reports for most things nowadays. This has led to a mess of a page. Luckily the search function has saved us a bit. However is there some way to hide some searches or archive them. Sort of how you can disable groups but still look them up.

# Answer
> 3 votes
This sounds like a good feature improvement and it probably will come! I'd start of with a good tagging schema first. If that isn't enough, you could create another Search Kit Display + Form Builder for Search Kit itself (as it works now) and just add an additional tag filter (e.g. Disabled, Primary, etc) filter for how you want to categorize the search to limit down the searches you want.

This isn't a major difference over going to the Search Kit screen and then selecting the tag but helps if you have a lot of categorization already.

On the display, use the link : `/CiviCRM&q=civicrm/admin/search#/edit/[id]`

---
Tags: groups, searchkit
---