Skip to content

Commit 3cee5d8

Browse files
authored
Merge pull request #1039 from ExpressionEngine/7.dev
Pushing Live Change log and docs for 7.5.15
2 parents a7509d7 + 28105ed commit 3cee5d8

File tree

7 files changed

+137
-8
lines changed

7 files changed

+137
-8
lines changed

docs/add-ons/file.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,21 @@ You can hard code the file entries tag to show specific files. You may also spec
128128

129129
If you want to display only the files that are in certain folder within an Upload Directory, specify the folder ID using this parameter.
130130

131+
### `mime_type=`
132+
133+
mime_type="image/jpeg|image/png"
134+
135+
Filter returned files by MIME type. You may specify one or more MIME types; separate multiple values with the pipe character.
136+
137+
Or use "not" to exclude types:
138+
139+
mime_type="not video/mp4|video/quicktime"
140+
141+
Common examples:
142+
143+
- Images only: `mime_type="image/jpeg|image/png|image/gif"`
144+
- PDFs only: `mime_type="application/pdf"`
145+
131146
### `limit=`
132147

133148
limit="30"

docs/development/extension-hooks/cp/login.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ How it's called:
5454

5555
$this->extensions->call('cp_member_logout');
5656
if ($this->extensions->end_script === TRUE) return;
57-
57+
5858
## `cp_member_reset_password()`
5959

6060
| Parameter | Type |
@@ -67,3 +67,22 @@ How it's called:
6767

6868
$this->extensions->call('cp_member_process_reset_password');
6969
if ($this->extensions->end_script === TRUE) return;
70+
71+
## `cp_member_send_reset_token_start($address)`
72+
73+
| Parameter | Type | Description
74+
| --------- | -------- | ---------------------------------------------------------------
75+
| $address | `String` | Email address posted from the control panel reset password form
76+
| Returns | `String` | Email address after extension processes it
77+
78+
Additional processing of email address sent via control panel reset password form.
79+
80+
How it's called:
81+
82+
if (ee()->extensions->active_hook('member_auth_send_reset_token_start')) {
83+
$address = ee()->extensions->call('member_auth_send_reset_token_start', $address);
84+
if (ee()->extensions->end_script === true) {
85+
return;
86+
}
87+
}
88+

docs/development/extension-hooks/global/email.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,50 @@ lang: php
1313

1414
# Email Library Extension Hooks
1515

16+
## `email_from_address($from, $name)`
17+
18+
| Parameter | Type | Description
19+
| --------- | -------- | --------------------------------------
20+
| $from | `String` | Email `from` address
21+
| $name | `String` | Email `name` for `from` address
22+
| Returns | `Array` | Associative array
23+
24+
Overwrite an email `from` address.
25+
26+
How it's called:
27+
28+
if (ee()->extensions->active_hook('email_from_address')) {
29+
$processed_address = ee()->extensions->call('email_from_address', $from, $name);
30+
$from = $processed_address['from'] ?? $from;
31+
$name = $processed_address['name'] ?? $name;
32+
33+
if (ee()->extensions->end_script === true) {
34+
return;
35+
}
36+
}
37+
38+
## `email_to_address($to)`
39+
40+
| Parameter | Type | Description
41+
| --------- | -------- | --------------------------------------
42+
| $to | `String` | Email `from` address
43+
| Returns | `String` | Manipulated Email `to` address
44+
45+
Overwrite an email `to` address.
46+
47+
How it's called:
48+
49+
if (ee()->extensions->active_hook('email_to_address')) {
50+
$to = ee()->extensions->call('email_to_address', $to);
51+
52+
if (ee()->extensions->end_script === true) {
53+
return;
54+
}
55+
}
56+
1657
## `email_send(&$data)`
1758

59+
1860
| Parameter | Type | Description |
1961
| --------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
2062
| &\$data | `Array` | Array of data about email to be sent (see above) passed [by reference](https://php.net/manual/en/language.references.pass.php) so data may be altered without needing to return the altered data |

docs/development/extension-hooks/module/member-auth.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,24 @@ How it's called:
6969
$edata = ee()->extensions->call('member_member_logout');
7070
if (ee()->extensions->end_script === TRUE) return;
7171

72+
## `member_auth_send_reset_token_start($address)`
73+
74+
| Parameter | Type | Description
75+
| --------- | -------- | ---------------------------------------------
76+
| $address | `String` | Email address posted from reset password form
77+
| Returns | `String` | Email address after extension processes it
78+
79+
Additional processing of email address sent via reset password form. Happens after basic security checks, but before email address check occurs.
80+
81+
How it's called:
82+
83+
if (ee()->extensions->active_hook('member_auth_send_reset_token_start')) {
84+
$address = ee()->extensions->call('member_auth_send_reset_token_start', $address);
85+
if (ee()->extensions->end_script === true) {
86+
return;
87+
}
88+
}
89+
7290
## `member_process_reset_password()`
7391

7492
| Parameter | Type | Description |

docs/installation/changelog.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,42 @@
88
-->
99
# ExpressionEngine v7 Change Log
1010

11+
# Version 7.5.15
12+
(Release: August 20th, 2025)
13+
<div class="max-w-7xl mx-autotext-center">
14+
<div class="space-y-8 sm:space-y-12">
15+
<ul role="list" class="mx-auto grid grid-cols-2 gap-x-4 gap-y-1 sm:grid-cols-4 md:gap-x-6 lg:max-w-5xl lg:gap-x-8 lg:gap-y-1 xl:grid-cols-5">
16+
17+
<li><div class="space-y-4 text-center"><img class="mx-auto h-20 w-20 rounded-full lg:w-24 lg:h-24" src="https://avatars.githubusercontent.com/u/563996?v=4" /><div class="space-y-2"><div class="text-xs font-medium lg:text-sm"><p class="mb-1">Bryan Nielsen</p><p class="text-indigo-600"><a href="https://github.com/ExpressionEngine/ExpressionEngine/commits?author=bryannielsen" target="_BLANK">@bryannielsen</a></p></div></div></div></li>
18+
<li><div class="space-y-4 text-center"><img class="mx-auto h-20 w-20 rounded-full lg:w-24 lg:h-24" src="https://avatars.githubusercontent.com/u/11818941?v=4" /><div class="space-y-2"><div class="text-xs font-medium lg:text-sm"><p class="mb-1">Matt Johnson</p><p class="text-indigo-600"><a href="https://github.com/ExpressionEngine/ExpressionEngine/commits?author=matthewjohns0n" target="_BLANK">@matthewjohns0n</a></p></div></div></div></li>
19+
<li><div class="space-y-4 text-center"><img class="mx-auto h-20 w-20 rounded-full lg:w-24 lg:h-24" src="https://avatars.githubusercontent.com/u/422821?v=4" /><div class="space-y-2"><div class="text-xs font-medium lg:text-sm"><p class="mb-1">Tom Jaeger</p><p class="text-indigo-600"><a href="https://github.com/ExpressionEngine/ExpressionEngine/commits?author=TomJaeger" target="_BLANK">@TomJaeger</a></p></div></div></div></li>
20+
<li><div class="space-y-4 text-center"><img class="mx-auto h-20 w-20 rounded-full lg:w-24 lg:h-24" src="https://avatars.githubusercontent.com/u/23382425?v=4" /><div class="space-y-2"><div class="text-xs font-medium lg:text-sm"><p class="mb-1">Yulya Lebed</p><p class="text-indigo-600"><a href="https://github.com/ExpressionEngine/ExpressionEngine/commits?author=Yulyaswan" target="_BLANK">@Yulyaswan</a></p></div></div></div></li>
21+
<li><div class="space-y-4 text-center"><img class="mx-auto h-20 w-20 rounded-full lg:w-24 lg:h-24" src="https://avatars.githubusercontent.com/u/752126?v=4" /><div class="space-y-2"><div class="text-xs font-medium lg:text-sm"><p class="mb-1">Yuri Salimovskiy</p><p class="text-indigo-600"><a href="https://github.com/ExpressionEngine/ExpressionEngine/commits?author=intoeetive" target="_BLANK">@intoeetive</a></p></div></div></div></li>
22+
<li><div class="space-y-4 text-center"><img class="mx-auto h-20 w-20 rounded-full lg:w-24 lg:h-24" src="https://avatars.githubusercontent.com/u/1181219?v=4" /><div class="space-y-2"><div class="text-xs font-medium lg:text-sm"><p class="mb-1">robinsowell</p><p class="text-indigo-600"><a href="https://github.com/ExpressionEngine/ExpressionEngine/commits?author=robinsowell" target="_BLANK">@robinsowell</a></p></div></div></div></li>
23+
</ul>
24+
</div>
25+
</div>
26+
27+
28+
**Bug Fixes** 🐛
29+
30+
- Fixed [#4923](https://github.com/ExpressionEngine/ExpressionEngine/issues/4923) where RTE ckeditor unordered list style issue [#4944](https://github.com/ExpressionEngine/ExpressionEngine/pull/4944)
31+
- Resolved an issue where base_path and theme_path could be incorrectly set when installed with system folder above web root [#4940](https://github.com/ExpressionEngine/ExpressionEngine/pull/4940)
32+
- Resolved [#4933](https://github.com/ExpressionEngine/ExpressionEngine/issues/4933) changed row getter to account for model object as well [#4939](https://github.com/ExpressionEngine/ExpressionEngine/pull/4939)
33+
- Fixed [#4891](https://github.com/ExpressionEngine/ExpressionEngine/issues/4891): Removed the "\*" displayed on individual input boxes of a required Grid field [#4912](https://github.com/ExpressionEngine/ExpressionEngine/pull/4912)
34+
35+
**Enhancements**
36+
37+
- Add mime_type parameter to {exp:file:entries} tag [#4942](https://github.com/ExpressionEngine/ExpressionEngine/pull/4942)
38+
- Add Strict-Transport-Security header to HTTP Header addon [#4934](https://github.com/ExpressionEngine/ExpressionEngine/pull/4934)
39+
- Bypass on-the-fly manipulations if the image is not editable (e.g. SVG); [#4868](https://github.com/ExpressionEngine/ExpressionEngine/issues/4868) [#4909](https://github.com/ExpressionEngine/ExpressionEngine/pull/4909)
40+
- Make no_results work in rss parser add-on [#4869](https://github.com/ExpressionEngine/ExpressionEngine/pull/4869)
41+
42+
**Developers** 💻
43+
44+
- 4 new hooks for email and forgotten passwords [#4833](https://github.com/ExpressionEngine/ExpressionEngine/pull/4833)
45+
- Additional developer improvements [#4805](https://github.com/ExpressionEngine/ExpressionEngine/pull/4805)
46+
1147
## Version 7.5.14
1248
(Release: August 6th, 2025)
1349
<div class="max-w-7xl mx-autotext-center">

scripts/utility.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const bsToFs = (p) => p.replace(/\\/g, '/')
2222
// Gets the folder depth of the specified path
2323
const dirDepth = (myDir) => myDir.split(Path.sep).length
2424

25-
const returnEmbedContents = (match, p1, p2, p3, offset, string) => {
25+
const returnEmbedContents = (match, p1, p2, p3, offset, string) => {
2626
console.log("Found Embed: " + p1);
2727
try {
2828
embedContents = Fs.readFileSync('./docs/'+p1, { encoding: 'utf8' });
@@ -40,18 +40,18 @@ const renderTemplate = (template, vars, currentPageInfo) => {;
4040
template = template.replace(new RegExp('{{\\s*' + key + '\\s*}}', 'gi'), value)
4141
}
4242

43-
43+
4444
template = template.replace(new RegExp('(?<!code>){{embed\:([^"\']*?)}}', 'gi'),returnEmbedContents);
4545

4646
return template
4747
}
4848

49-
// Gets the relative path to the source dir from a docs page
49+
// Gets the relative path to the source dir from a docs page, returning a web-safe path
5050
const getRelativeRootFromPage = (pagePath) => {
5151
let depth = dirDepth(pagePath) - dirDepth(Path.resolve(CONFIG.sourceDir))
52-
let relPath = ('..' + Path.sep).repeat(depth - 1)
53-
54-
return relPath
52+
if (depth <= 1) return './';
53+
let relPath = '../'.repeat(depth - 1);
54+
return relPath.replace(/\/+$/, '') + '/';
5555
}
5656

5757
// Returns a function that will slugify a heading and also handle future duplicate slugs when called again

theme/doc-page-template.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@
5454
</script>
5555
</head>
5656
<body>
57-
5857
<div class="header">
5958
<div class="header-content">
6059
<a href="https://docs.expressionengine.com/latest" class="header-logo"><img src="{{root_dir}}_assets/images/ee-logo-white.svg" alt=""></a>

0 commit comments

Comments
 (0)