Joomla issueshttps://lab.civicrm.org/dev/joomla/-/issues2023-05-15T08:02:24Zhttps://lab.civicrm.org/dev/joomla/-/issues/50Dead code files in civicrm-joomla repo?2023-05-15T08:02:24ZAllenShawDead code files in civicrm-joomla repo?CiviCRM / Joomla / PHP 8 seems to be a viable combination (per some quick testing, and comments from @seamuslee and @nicol in https://lab.civicrm.org/dev/joomla/-/issues/43).
Yet several files in the civicrm-joomla repo contain syntax e...CiviCRM / Joomla / PHP 8 seems to be a viable combination (per some quick testing, and comments from @seamuslee and @nicol in https://lab.civicrm.org/dev/joomla/-/issues/43).
Yet several files in the civicrm-joomla repo contain syntax errors under PHP 8, specifically (in line 53, and other lines) in these files:
- https://github.com/civicrm/civicrm-joomla/blob/master/site/views/Events/tmpl/default.php#L53
- https://github.com/civicrm/civicrm-joomla/blob/master/site/views/Events/tmpl/register.php#L53
- https://github.com/civicrm/civicrm-joomla/blob/master/site/views/Profiles/tmpl/default.php#L53
So: I'm not sure if the above files are just dead code (i.e. they never run), or if they need to be cleaned up for proper PHP 8 support.https://lab.civicrm.org/dev/joomla/-/issues/48CiviCRM profiles don't produce working webpages2023-05-15T18:56:34ZSOAPCiviCRM profiles don't produce working webpagesAfter upgrading my site to Joomla 4 all CiviCRM pages that are based on a CiviCRM profile refuse to display their content. Under Joomla 3 a page would render into a URL like website.org/name/user-directory. Under Joomla 4 the same page r...After upgrading my site to Joomla 4 all CiviCRM pages that are based on a CiviCRM profile refuse to display their content. Under Joomla 3 a page would render into a URL like website.org/name/user-directory. Under Joomla 4 the same page renders into the URL website.org/organisation/user-directory?view=Profiles&layout=search&task=civicrm/profile&gid=22&reset=1
Because the website (with its 100s of pages) uses mod_rewrite to remove the 'index.php' it also removes the index.php from the Joomla 4 CiviCRM URL. Adding the index.php manually to the URL in the browser does produce the information of the profile. It seems to me that under Joomla 3 that CiviCRM was working under an alias while under CiviCRM a long version of the URL is pushed to the browser that is messed up by the mod_rewrite. Anyway, in the current form I can't upgrade.
I include a screenshot of the type of menu where this issue occurs.
![Screenshot_2023-03-04_at_18.16.37](/uploads/461075cda2c4581d4abe42efc62cd622/Screenshot_2023-03-04_at_18.16.37.jpg)https://lab.civicrm.org/dev/joomla/-/issues/47Joomla upgrade process doesn't respect having different CiviCRM and Joomla da...2023-04-12T12:37:26Zchrisgaraffachris@aghstrategies.comJoomla upgrade process doesn't respect having different CiviCRM and Joomla databasesIf CiviCRM is using a different database than Joomla (CIVICRM_UF_DSN and CIVICRM_DSN are not the same), the Joomla upgrade process writes the new civicrm.settings.php files with both set to
This causes some chaos when the upgrade is "d...If CiviCRM is using a different database than Joomla (CIVICRM_UF_DSN and CIVICRM_DSN are not the same), the Joomla upgrade process writes the new civicrm.settings.php files with both set to
This causes some chaos when the upgrade is "done" as both settings files need to be updated quickly, and Civi unnecessarily creates all its tables again in the Joomla database.
A possible fix would be to have [civicrm_config](https://github.com/civicrm/civicrm-joomla/blob/28596149e1afe37d44d90e82809adfee7feb45c8/admin/configure.php#L230) get passed CIVCIRM_UF_DSN from [civicrm_source](https://github.com/civicrm/civicrm-joomla/blob/28596149e1afe37d44d90e82809adfee7feb45c8/admin/configure.php#L180) and parse it, using those values for `dbUser`, `dbPass`, `dbHost`, `dbName` instead of the `$jConfig` values. The function already gets passed site, credential & sign keys.
I haven't worked on a PR but will probably have time in the next week or two if there's interest.https://lab.civicrm.org/dev/joomla/-/issues/46KC Finder Not Working Under Joomla 42023-12-11T14:04:46ZcrusonwebKC Finder Not Working Under Joomla 4I have discovered that currently KC Finder will not work under Joomla 4. If you click the Browse Server button when inserting an image into the editor using CKEditor 4, CKEditor 5 or TinyMCE you get a 500 error. I have recreated this o...I have discovered that currently KC Finder will not work under Joomla 4. If you click the Browse Server button when inserting an image into the editor using CKEditor 4, CKEditor 5 or TinyMCE you get a 500 error. I have recreated this on multiple client sites running Joomla 4.2.7 and 4.2.8 and CiviCRM 5.57.0 and 5.58.1. I have also recreated it on the Joomla 4 demo site, although I had to turn off Mosaico to do so (since it is on by default).
I did some digging and the problem appears to rest in the authenticate_joomla function within /packages/kcfinder/integration/civicrm.php which is using JFactory::getApplication('administrator'). Under Joomla 4, getApplication doesn't work the same way it did under Joomla 3 so you get the non-descript 500 error screen. I updated the code with the following block and that worked in most of my cases:
```
if (version_compare(JVERSION, '4.0.0', 'lt')) {
$mainframe = JFactory::getApplication('administrator');
$mainframe->initialise();
$user_id = JFactory::getUser()->id;
} else {
// Boot the DI container.
$container = \Joomla\CMS\Factory::getContainer();
// Alias the session service key to the web session service.
$container->alias(\Joomla\Session\SessionInterface::class, 'session.web.site');
// Get the application.
$app = $container->get(\Joomla\CMS\Application\AdministratorApplication::class);
$user_id = Joomla\CMS\Factory::getUser()->id;
}
```
In all but one case this got KC Finder working, that last case I ended up with the folder and file fields both saying "Unknown Error" which I am thinking is due to something specific to that site and not Civi. However, I am not 100% confident my approach is the right one so I wanted to raise this as an issue so another set of eyes could confirm or correct my solution.Monish DebMonish Debhttps://lab.civicrm.org/dev/joomla/-/issues/45Remove sidebar (at least for Joomla 4)2023-08-27T20:55:45ZnicolRemove sidebar (at least for Joomla 4)Joomla 4 has a sidebar, which defaults open, and means the Civi sidebar squashes the important info even more…
As WordPress and Drupal Civi cope ok without this sidebar, maybe it's time to remove the sidebar from Joomla (or at least for...Joomla 4 has a sidebar, which defaults open, and means the Civi sidebar squashes the important info even more…
As WordPress and Drupal Civi cope ok without this sidebar, maybe it's time to remove the sidebar from Joomla (or at least for Joomla 4)
![image](/uploads/c5fdc516916c3d36c925976bbfc3be2c/image.png)https://lab.civicrm.org/dev/joomla/-/issues/44Class Civi\Api4\Event\Subscriber\ActivityPreCreationSubscriber was expected t...2023-01-24T16:19:34ZpotClass Civi\Api4\Event\Subscriber\ActivityPreCreationSubscriber was expected to have a service definition, but it did notUsing php 7.4 and civicrm 5.57.1 on Joomla I see:
```
$ php74 domains/domain.org/public_html/administrator/components/com_civicrm/civicrm/bin/cli.php -s domain.org -u cronjob -p cronjob-pass -e Job -a execute
-->
WARNING: Class Civi\Api4...Using php 7.4 and civicrm 5.57.1 on Joomla I see:
```
$ php74 domains/domain.org/public_html/administrator/components/com_civicrm/civicrm/bin/cli.php -s domain.org -u cronjob -p cronjob-pass -e Job -a execute
-->
WARNING: Class Civi\Api4\Event\Subscriber\ActivityPreCreationSubscriber was expected to have a service definition, but it did not. Perhaps it needs service name.
WARNING: Class Civi\Api4\Event\Subscriber\ContributionPreSaveSubscriber was expected to have a service definition, but it did not. Perhaps it needs service name.
WARNING: Class Civi\Api4\Event\Subscriber\CustomGroupPreCreationSubscriber was expected to have a service definition, but it did not. Perhaps it needs service name.
WARNING: Class Class Civi\Api4\Event\Subscriber\OptionValuePreCreationSubscriber was expected to have a service definition, but it did not. Perhaps it needs service name.
WARNING: Class PHP Deprecated: Non-static method JApplication::getMenu() should not be called statically in/home/usiako1s/domains/domain.org/public_html/plugins/authentication/civicrm//civicrm.php on line 305
```https://lab.civicrm.org/dev/joomla/-/issues/42Minor J4 issue: nav button link is wrong2023-08-26T22:36:27ZnicolMinor J4 issue: nav button link is wrongCiviCRM has a button link in the top right admin nav, but this currently just links to the site home page, ie root.
![image](/uploads/964ba7955e5724d3a295d9a302145ea4/image.png)CiviCRM has a button link in the top right admin nav, but this currently just links to the site home page, ie root.
![image](/uploads/964ba7955e5724d3a295d9a302145ea4/image.png)Joomla 4 Integrationhttps://lab.civicrm.org/dev/joomla/-/issues/405 broken/dated links in post-install success screen for Joomla2022-10-11T22:50:40Znicol5 broken/dated links in post-install success screen for JoomlaOn successfully installing CiviCRM on Joomla (I'm assuming not on the other CMSs), there's a welcome screen with four links to the old wiki/confluence (ie 'http://wiki.civicrm.org/confluence/display/CRMDOC/Installation+and+Upgrades') whi...On successfully installing CiviCRM on Joomla (I'm assuming not on the other CMSs), there's a welcome screen with four links to the old wiki/confluence (ie 'http://wiki.civicrm.org/confluence/display/CRMDOC/Installation+and+Upgrades') which would better point to new (https) docs pages. The register a site link is also broken.
I'm happy to make a PR for this but not sure where the file is located, I checked in https://github.com/civicrm/civicrm-core/tree/master/install & https://github.com/civicrm/civicrm-joomla but couldn't see it. Maybe it's not an actual smarty template but something that's passed to Joomla's UI as it looks natively styled in J3 and J4?
![image](/uploads/8b0a011ff0531bcfc719e6b4eb5e30b0/image.png)
New links needed for:
- 'Installation Guide' - I guess to this: https://docs.civicrm.org/user/en/latest/initial-set-up/installation-and-basic-set-up/
- Create front-end forms and searchable directories using Profiles - https://docs.civicrm.org/user/en/latest/organising-your-data/profiles/
- Create online contribution pages - https://docs.civicrm.org/user/en/latest/contributions/online-contributions/
- Create events with online event registration - https://docs.civicrm.org/user/en/latest/events/what-is-civievent/
- Register a site - https://civicrm.org/register-a-sitenicolnicolhttps://lab.civicrm.org/dev/joomla/-/issues/36Fatal error on visiting CiviCRM paths having `task` query param in it twice2021-10-29T03:08:15ZjitendraFatal error on visiting CiviCRM paths having `task` query param in it twice`task` is the parent param used by joomla to load any path. See https://docs.joomla.org/URLs_in_Joomla
A fatal error is encountered when a civi page is loaded with `task` in it.
Quick steps to replicate on joomla demo is
- Search for...`task` is the parent param used by joomla to load any path. See https://docs.joomla.org/URLs_in_Joomla
A fatal error is encountered when a civi page is loaded with `task` in it.
Quick steps to replicate on joomla demo is
- Search for contributions - https://cividemo.com/administrator/?option=com_civicrm&task=civicrm/contribute/search&reset=1
- Try to send a receipt using the more link.
![image](/uploads/7f84428c90e3d42e8396d9c792f2b440/image.png)
The URL that is formed is
`https://cividemo.com/administrator/?option=com_civicrm&task=civicrm/contribute/task&reset=1&task=receipt&id=12`
Note there are 2 task query params
task=civicrm/contribute/task
and
task=receipt
Probably the final value is used by joomla and is never able to load the page.
Fix: Replace all task query param in civi to something else, eg taskItem.https://lab.civicrm.org/dev/joomla/-/issues/34[Joomla 4.0] CiviCRM logo not showing in Quick Icon plugin2022-05-27T10:14:42Znicol[Joomla 4.0] CiviCRM logo not showing in Quick Icon pluginVery low priority, but the QuickIcon Joomla plugin (https://github.com/civicrm/civicrm-joomla/tree/master/admin/plugins/civicrmicon) no longer shows a Civi logo:
![image](/uploads/aed5a3996ded76fc73d42686f36f00fd/image.png)Very low priority, but the QuickIcon Joomla plugin (https://github.com/civicrm/civicrm-joomla/tree/master/admin/plugins/civicrmicon) no longer shows a Civi logo:
![image](/uploads/aed5a3996ded76fc73d42686f36f00fd/image.png)Joomla 4 Integrationnicolnicolhttps://lab.civicrm.org/dev/joomla/-/issues/32Resource URL for images is really "media"?2021-05-25T11:07:57Zthoni56Resource URL for images is really "media"?CiviCRM 5.36.1 on Joomla 3.9.26
In Administer->Resource URL:s there is a setting that is named "Image Upload URL", but I'm suspecting that it is actually the base path for [civicrm.files] to which settings on Administer->Directories are...CiviCRM 5.36.1 on Joomla 3.9.26
In Administer->Resource URL:s there is a setting that is named "Image Upload URL", but I'm suspecting that it is actually the base path for [civicrm.files] to which settings on Administer->Directories are added ("images", "files", "custom_ext", etc.)?
With the label and help text you are led to believe that
1. It is only for images
2. It is only for upload
This has made us set it to `/media/civicrm/images` (on Joomla) and we are now uploading images to `media/civicrm/images/images` uploading files to `/media/civicrm/images/files` etc.
If my interpretation is correct, I'd suggest that the label, lead and help texts for the field should be updated to not include "images" but say "media", and even "[civicrm.files]" instead.
If not, then the duplicated "images" in image directory is the problem I could get around setting the resource-URL for upload of images to just `/media/civicrm`. But that trashed the CiviCRM menus.
I feel there is an inconsistency here.https://lab.civicrm.org/dev/joomla/-/issues/31Joomla language strings not being used2021-08-27T11:24:06ZElin.WaringJoomla language strings not being usedI submitted https://github.com/civicrm/civicrm-joomla/pull/56
which changes the config.xml code to use Joomla language strings and adds the strings to the language folder. This makes them translatable or override-able.I submitted https://github.com/civicrm/civicrm-joomla/pull/56
which changes the config.xml code to use Joomla language strings and adds the strings to the language folder. This makes them translatable or override-able.https://lab.civicrm.org/dev/joomla/-/issues/27CiviCRM menus disappear in Joomla after 5.24.x upgrade2020-04-13T10:35:47ZspalmstromCiviCRM menus disappear in Joomla after 5.24.x upgradeUnder Joomla, the CiviCRM menus disappear after upgrading to 5.24.x.Under Joomla, the CiviCRM menus disappear after upgrading to 5.24.x.https://lab.civicrm.org/dev/joomla/-/issues/26CiviCRM menu disappears and upgrade to 5.23.x fails if Joomla is in a folder ...2020-05-16T03:15:37ZspalmstromCiviCRM menu disappears and upgrade to 5.23.x fails if Joomla is in a folder below the website.This issue may also apply to Drupal, but I haven't tried it.
If the Joomla site is a subfolder of the main site, e.g.
https://www.example.com/joomla, the CiviCRM menu disappears after upgrading to 5.23.x and the database upgrade gets stu...This issue may also apply to Drupal, but I haven't tried it.
If the Joomla site is a subfolder of the main site, e.g.
https://www.example.com/joomla, the CiviCRM menu disappears after upgrading to 5.23.x and the database upgrade gets stuck. If Joomla is immediately under the site, both issues disappear. Examining the code shows errors in loading scripts, where the browser attempts to load files in:
https://www.example.com/joomla/joomla
In other words, it seems to be duplicating the subfolder.5.23.4https://lab.civicrm.org/dev/joomla/-/issues/24[Joomla 4.0] CiviCRM's CSS interferes with Joomla's top header background colour2019-09-10T02:19:37ZAndrew Thompson[Joomla 4.0] CiviCRM's CSS interferes with Joomla's top header background colourNormally Joomla 4.0's administrative template shows a white top header background:
![image](/uploads/927c5e20d27509e1ec1e4c0e6f3be3af/image.png)
But on any CiviCRM backend page Joomla's header is changed to a blue background:
![image](/...Normally Joomla 4.0's administrative template shows a white top header background:
![image](/uploads/927c5e20d27509e1ec1e4c0e6f3be3af/image.png)
But on any CiviCRM backend page Joomla's header is changed to a blue background:
![image](/uploads/ca0e4aedf4df796b6b7ba6aa9572e3f1/image.png)
This comes from CiviCRM's `administrator/components/com_civicrm/civicrm/css/joomla.css`:
```
#header {
background-color: #69c;
}
```
I propose that we get rid of the above from `joomla.css`. I can't see that it had any effect on Joomla 3.
* In a Joomla 3 page there is a `<header class="header">` (class not id unlike in J4's new Atum template) and that's the closest we get in Joomla itself.
* If I grep the CiviCRM codebase for 'id="header"' (perhaps not foolproof) the only places it appears in CiviCRM are:
```
administrator/components/com_civicrm/civicrm/templates/CRM/Mailing/MailingUI.hlp:{htxt id="header"}
administrator/components/com_civicrm/civicrm/bower_components/ckeditor/samples/old/inlineall.html: <div id="header">
```
And the #header in joomla.css doesn't affect those cases.https://lab.civicrm.org/dev/joomla/-/issues/23Frontend form field labels are not styled well on Joomla 32020-01-14T14:55:04ZAndrew ThompsonFrontend form field labels are not styled well on Joomla 3As shown in this screenshot, the field labels have an ugly grey background and white text applied to the `.label` CSS class, at least on the Joomla 3 default 'Protostar' site (frontend) template.
![image](/uploads/4e7a8e4a2f0d000f75a6ea8...As shown in this screenshot, the field labels have an ugly grey background and white text applied to the `.label` CSS class, at least on the Joomla 3 default 'Protostar' site (frontend) template.
![image](/uploads/4e7a8e4a2f0d000f75a6ea84d8046f42/image.png)
Of course this could be overridden by a savvy user with custom CSS but it does degrade the out-of-box experience for a new Joomla 3 user.https://lab.civicrm.org/dev/joomla/-/issues/22[Joomla 4.0] CiviCRM pages don't work in Joomla frontend - Class 'JRequest' n...2019-09-09T22:47:07ZAndrew Thompson[Joomla 4.0] CiviCRM pages don't work in Joomla frontend - Class 'JRequest' not foundOpening any CiviCRM page on Joomla 4.0 frontend fails with this error:
> Class 'JRequest' not foundOpening any CiviCRM page on Joomla 4.0 frontend fails with this error:
> Class 'JRequest' not found5.19.0https://lab.civicrm.org/dev/joomla/-/issues/21cron.php broken since Joomla 3.8 in some PHP environments2021-02-26T08:34:13ZAndrew Thompsoncron.php broken since Joomla 3.8 in some PHP environmentsThis issue was mentioned in https://issues.civicrm.org/jira/browse/CRM-21203 and the [associated PR](https://github.com/civicrm/civicrm-core/pull/11609), which eventually solved problems for cli.php. But there is a session issue that has...This issue was mentioned in https://issues.civicrm.org/jira/browse/CRM-21203 and the [associated PR](https://github.com/civicrm/civicrm-core/pull/11609), which eventually solved problems for cli.php. But there is a session issue that hasn't gone away for cron.php so I am reporting that here.
Depending on PHP error reporting settings (and PHP version possibly, certainly it happens on PHP 7+), this warning will be given:
```
Warning: ini_set(): A session is active. You cannot change the session module's ini settings at this time in /var/www/html/membership/libraries/joomla/session/handler/joomla.php on line 48
```
Which may also cause this one:
```
Warning: session_cache_limiter(): Cannot change cache limiter when headers already sent in /var/www/html/membership/libraries/joomla/session/handler/native.php on line 235
```
Followed by this error:
```
Error: Failed to start application: Failed to start the session because headers have already been sent by "/var/www/html/membership/libraries/joomla/session/handler/joomla.php" at line 48.
```
The cron.php problem started in Joomla 3.8 [due to a change that Joomla made](https://github.com/joomla/joomla-cms/commit/5b92dc69b39240debc69fb90c7f8d71f060631e8#diff-bf82c85e1f29a328e842c4a195392b10) to `JSessionHandlerJoomla::__construct()` in `libraries/joomla/session/handler/joomla.php`.
It could be fixed by Joomla, however I have given up on that. There was an abandoned [Joomla PR #15742](https://github.com/joomla/joomla-cms/pull/15742), superseded by [PR #21260](https://github.com/joomla/joomla-cms/pull/21260), which is also languishing. Anyway we might be better off fixing this on the CiviCRM side.
This is a similar (but separate) case to [https://github.com/civicrm/civicrm-core/pull/14074](https://github.com/civicrm/civicrm-core/pull/14074), where `extern/rest.php` called `session_start()` before bootstrapping the CMS - that issue referred to Drupal though I am sure that it applied to Joomla also (don't know about Wordpress). Removing session_start() was the solution for that REST session problem.https://lab.civicrm.org/dev/joomla/-/issues/20[Joomla 4.0] CiviCRM Extensions page is broken2021-08-27T10:54:39ZAndrew Thompson[Joomla 4.0] CiviCRM Extensions page is brokenSee screenshot - tabs are broken, layout messed up.
Browser console shows Javascript errors `ReferenceError: CRM is not defined`
![image](/uploads/536de62a9402a70e09e2cb7d2f139628/image.png)
![image](/uploads/9f1d2bc705ba8ea3b59b5d2677...See screenshot - tabs are broken, layout messed up.
Browser console shows Javascript errors `ReferenceError: CRM is not defined`
![image](/uploads/536de62a9402a70e09e2cb7d2f139628/image.png)
![image](/uploads/9f1d2bc705ba8ea3b59b5d267786a2ac/image.png)Joomla 4 Integrationhttps://lab.civicrm.org/dev/joomla/-/issues/19[Joomla 4.0] Styling issues on modal forms for new membership/contribution/pl...2022-04-21T17:12:16ZAndrew Thompson[Joomla 4.0] Styling issues on modal forms for new membership/contribution/pledge etcThis applies to the modal pop-up forms for a contact: new membership, new contribution, new pledge, new event registration etc.
- The form is too narrow
- Where there is a scrollbar, either horizontal or vertical, it doesn't work. Cannot...This applies to the modal pop-up forms for a contact: new membership, new contribution, new pledge, new event registration etc.
- The form is too narrow
- Where there is a scrollbar, either horizontal or vertical, it doesn't work. Cannot scroll.
- The top of the modal form is underneath the Joomla top menubar
![image](/uploads/15379661aaa92561c653c2bef582829b/image.png)
![image](/uploads/40c6006460ac9b045cb87d518866f3cd/image.png)
![image](/uploads/779317dbd5e5bbb808e8937843c4d541/image.png)Joomla 4 Integration