Unverified Commit 0667dc58 authored by Seamus Lee's avatar Seamus Lee Committed by GitHub

Merge pull request #16892 from civicrm/5.24

5.24
parents fcaacef3 dc966a6d
......@@ -38,19 +38,19 @@ class Paths {
->register('civicrm.packages', function () {
return [
'path' => \Civi::paths()->getPath('[civicrm.root]/packages/'),
'url' => \Civi::paths()->getUrl('[civicrm.root]/packages/'),
'url' => \Civi::paths()->getUrl('[civicrm.root]/packages/', 'absolute'),
];
})
->register('civicrm.vendor', function () {
return [
'path' => \Civi::paths()->getPath('[civicrm.root]/vendor/'),
'url' => \Civi::paths()->getUrl('[civicrm.root]/vendor/'),
'url' => \Civi::paths()->getUrl('[civicrm.root]/vendor/', 'absolute'),
];
})
->register('civicrm.bower', function () {
return [
'path' => \Civi::paths()->getPath('[civicrm.root]/bower_components/'),
'url' => \Civi::paths()->getUrl('[civicrm.root]/bower_components/'),
'url' => \Civi::paths()->getUrl('[civicrm.root]/bower_components/', 'absolute'),
];
})
->register('civicrm.files', function () {
......
......@@ -26,6 +26,15 @@ Released April 1, 2020
- **[Credits](release-notes/5.24.0.md#credits)**
- **[Feedback](release-notes/5.24.0.md#feedback)**
## CiviCRM 5.23.4
Released March 24, 2020
- **[Synopsis](release-notes/5.23.4.md#synopsis)**
- **[Bugs resolved](release-notes/5.23.4.md#bugs)**
- **[Credits](release-notes/5.23.4.md#credits)**
- **[Feedback](release-notes/5.23.4.md#feedback)**
## CiviCRM 5.23.3
Released March 16, 2020
......
# CiviCRM 5.23.4
Released March 24, 2020.
- **[Synopsis](#synopsis)**
- **[Bugs resolved](#bugs)**
- **[Credits](#credits)**
- **[Feedback](#feedback)**
## <a name="synopsis"></a>Synopsis
| *Does this version...?* | |
|:--------------------------------------------------------------- |:-------:|
| Fix security vulnerabilities? | no |
| Change the database schema? | no |
| Alter the API? | no |
| Require attention to configuration options? | no |
| Fix problems installing or upgrading to a previous version? | no |
| Introduce features? | no |
| **Fix bugs?** | **yes** |
## <a name="bugs"></a>Bugs resolved
** **_Various_: Fix malformed URLs when CMS root is a subdirectory ([dev/joomla#26](https://lab.civicrm.org/dev/joomla/issues/26): [#16887](https://github.com/civicrm/civicrm-core/pull/16887))**
## <a name="credits"></a>Credits
This release was developed by the following authors and reviewers:
Tadpole Collective - Kevin Cristiano; Stephen Palmstrom; Squiffle Consulting - Aidan
Saunders; Nicol Wistreich; JMA Consulting - Seamus Lee; howardshand; CiviCRM - Tim Otten;
Andy Burns; Andrew Thompson
## <a name="feedback"></a>Feedback
These release notes are edited by Tim Otten and Andrew Hunt. If you'd like to
provide feedback on them, please login to https://chat.civicrm.org/civicrm and
contact `@agh1`.
......@@ -101,4 +101,55 @@ class PathsTest extends \CiviUnitTestCase {
$this->assertEquals("$cmsRoot/foo", $p->getUrl('foo'));
}
/**
* This test demonstrates how to (and how not to) compute a derivative path variable.
*/
public function testAbsoluteRelativeConversions() {
$gstack = \CRM_Utils_GlobalStack::singleton();
$gstack->push(['_SERVER' => ['HTTP_HOST' => 'example.com']]);
$cleanup = \CRM_Utils_AutoClean::with([$gstack, 'pop']);
$paths = new Paths();
$paths->register('test.base', function () {
return [
'path' => '/var/foo/',
'url' => 'http://example.com/foo/',
];
});
$paths->register('test.goodsub', function () use ($paths) {
// This is a stand-in for how [civicrm.bower], [civicrm.packages], [civicrm.vendor] currently work.
return [
'path' => $paths->getPath('[test.base]/good/'),
'url' => $paths->getUrl('[test.base]/good/', 'absolute'),
];
});
$paths->register('test.badsub', function () use ($paths) {
// This is a stand-in for how [civicrm.bower], [civicrm.packages], [civicrm.vendor] used to work (incorrectly).
return [
'path' => $paths->getPath('[test.base]/bad/'),
// The following *looks* OK, but it's not. Note that `getUrl()` by default uses `$preferFormat==relative`.
// Both registered URLs (`register()`, `$civicrm_paths`) and outputted URLs (`getUrl()`)
// can be in relative form. However, they are relative to different bases: registrations are
// relative to CMS root, and outputted URLs are relative to HTTP root. They are often the same, but...
// on deployments where they differ, this example will misbehave.
'url' => $paths->getUrl('[test.base]/bad/'),
];
});
// The test.base works as explicitly defined...
$this->assertEquals('/var/foo', $paths->getPath('[test.base]/.'));
$this->assertEquals('http://example.com/foo', $paths->getUrl('[test.base]/.', 'absolute'));
$this->assertEquals('/foo', $paths->getUrl('[test.base]/.', 'relative'));
// The test.goodsub works as expected...
$this->assertEquals('/var/foo/good', $paths->getPath('[test.goodsub]/.'));
$this->assertEquals('http://example.com/foo/good', $paths->getUrl('[test.goodsub]/.', 'absolute'));
$this->assertEquals('/foo/good', $paths->getUrl('[test.goodsub]/.', 'relative'));
// The test.badsub doesn't work as expected.
$this->assertEquals('/var/foo/bad', $paths->getPath('[test.badsub]/.'));
$this->assertNotEquals('http://example.com/foo/bad', $paths->getUrl('[test.badsub]/.', 'absolute'));
$this->assertNotEquals('/foo/bad', $paths->getUrl('[test.badsub]/.', 'relative'));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment