Skip to content

Commit

Permalink
Merge pull request phpbb#6635 from iMattPro/ticket/17335
Browse files Browse the repository at this point in the history
[ticket/17335] Fix language var issues in the extension manager
  • Loading branch information
marc1706 authored Jun 23, 2024
2 parents 4010c88 + 4441375 commit c28b944
Show file tree
Hide file tree
Showing 5 changed files with 88 additions and 49 deletions.
57 changes: 38 additions & 19 deletions phpBB/adm/style/acp_ext_list.html
Original file line number Diff line number Diff line change
Expand Up @@ -99,25 +99,44 @@ <h1>{L_EXTENSIONS_ADMIN}</h1>
</table>

<table class="table1">
<tr>
<th>{L_EXTENSION_INSTALL_HEADLINE}</th>
</tr>
<tr>
<td class="row3">{L_EXTENSION_INSTALL_EXPLAIN}</td>
</tr>
<tr>
<th>{L_EXTENSION_UPDATE_HEADLINE}</th>
</tr>
<tr>
<td class="row3">{L_EXTENSION_UPDATE_EXPLAIN}</td>
</tr>
<tr>
<th>{L_EXTENSION_REMOVE_HEADLINE}</th>
</tr>
<tr>
<td class="row3">{L_EXTENSION_REMOVE_EXPLAIN}</td>
</tr>
</tbody>
<tbody>
<tr>
<th>{L_EXTENSION_INSTALLING_HEADLINE}</th>
</tr>
<tr>
<td class="row3">
<ol>
{% for step in lang_raw('EXTENSION_INSTALLING_EXPLAIN') %}
<li>{{ step }}</li>
{% endfor %}
</ol>
</td>
</tr>
<tr>
<th>{L_EXTENSION_UPDATING_HEADLINE}</th>
</tr>
<tr>
<td class="row3">
<ol>
{% for step in lang_raw('EXTENSION_UPDATING_EXPLAIN') %}
<li>{{ step }}</li>
{% endfor %}
</ol>
</td>
</tr>
<tr>
<th>{L_EXTENSION_REMOVING_HEADLINE}</th>
</tr>
<tr>
<td class="row3">
<ol>
{% for step in lang_raw('EXTENSION_REMOVING_EXPLAIN') %}
<li>{{ step }}</li>
{% endfor %}
</ol>
</td>
</tr>
</tbody>
</table>

<!-- INCLUDE overall_footer.html -->
57 changes: 30 additions & 27 deletions phpBB/language/en/acp/extensions.php
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,15 @@

$lang = array_merge($lang, array(

'EXTENSION_ALREADY_INSTALLED' => 'The “%s” extension has already been installed.',
'EXTENSION_ALREADY_INSTALLED_MANUALLY' => 'The “%s” extension has already been installed manually.',
'EXTENSION_ALREADY_MANAGED' => 'The “%s” extension is already managed.',
'EXTENSION_CANNOT_MANAGE_FILESYSTEM_ERROR' => 'The “%s” extension cannot be managed because the existing files could not be removed from the filesystem.',
'EXTENSION_CANNOT_MANAGE_INSTALL_ERROR' => 'The “%s” extension could not be installed. The prior installation of this extension has been restored.',
'EXTENSION_MANAGED_WITH_CLEAN_ERROR' => 'The “%1$s” extension has been installed but an error occurred and the old files could not be removed. You might want to delete the “%2$s” files manually.',
'EXTENSION_MANAGED_WITH_ENABLE_ERROR' => 'The “%s” extension has been installed but an error occurred while enabling it.',
'EXTENSION_NOT_INSTALLED' => 'The “%s” extension is not installed.',
'EXTENSIONS_ALREADY_INSTALLED' => 'The “%s” extension has already been installed.',
'EXTENSIONS_ALREADY_INSTALLED_MANUALLY' => 'The “%s” extension has already been installed manually.',
'EXTENSIONS_ALREADY_MANAGED' => 'The “%s” extension is already managed.',
'EXTENSIONS_CANNOT_MANAGE_FILESYSTEM_ERROR' => 'The “%s” extension cannot be managed because the existing files could not be removed from the filesystem.',
'EXTENSIONS_CANNOT_MANAGE_INSTALL_ERROR' => 'The “%s” extension could not be installed. The prior installation of this extension has been restored.',
'EXTENSIONS_MANAGED_WITH_CLEAN_ERROR' => 'The “%1$s” extension has been installed but an error occurred and the old files could not be removed. You might want to delete the “%2$s” files manually.',
'EXTENSIONS_MANAGED_WITH_ENABLE_ERROR' => 'The “%s” extension has been installed but an error occurred while enabling it.',
'EXTENSIONS_NOT_INSTALLED' => 'The “%s” extension is not installed.',
'EXTENSIONS_NOT_MANAGED' => 'The “%s” extension is not being managed.',

'ENABLING_EXTENSIONS' => 'Enabling extensions',
'DISABLING_EXTENSIONS' => 'Disabling extensions',
Expand Down Expand Up @@ -74,6 +75,8 @@
'EXTENSION_DELETE_DATA_EXPLAIN' => 'Deleting an extension’s data removes all of its data and settings. The extension files are retained so it can be enabled again.',
'EXTENSION_DISABLE_EXPLAIN' => 'Disabling an extension retains its files, data and settings but removes any functionality added by the extension.',
'EXTENSION_ENABLE_EXPLAIN' => 'Enabling an extension allows you to use it on your board.',
'EXTENSION_REMOVE_EXPLAIN' => 'Removing an extension removes all of its files, data and settings.',
'EXTENSION_UPDATE_EXPLAIN' => 'Updating an extension will install the latest version compatible with your board, removing old files and replacing them with new ones, and updating the database if necessary.',

'EXTENSION_DELETE_DATA_IN_PROGRESS' => 'The extension’s data is currently being deleted. Please do not leave or refresh this page until it is completed.',
'EXTENSION_DISABLE_IN_PROGRESS' => 'The extension is currently being disabled. Please do not leave or refresh this page until it is completed.',
Expand All @@ -86,25 +89,25 @@
'EXTENSION_NAME' => 'Extension Name',
'EXTENSION_ACTIONS' => 'Actions',
'EXTENSION_OPTIONS' => 'Options',
'EXTENSION_INSTALL_HEADLINE'=> 'Installing an extension',
'EXTENSION_INSTALL_EXPLAIN' => '<ol>
<li>Download an extension from phpBB’s extensions database</li>
<li>Unzip the extension and upload it to the <samp>ext/</samp> directory of your phpBB board</li>
<li>Enable the extension, here in the Extensions manager</li>
</ol>',
'EXTENSION_UPDATE_HEADLINE' => 'Updating an extension',
'EXTENSION_UPDATE_EXPLAIN' => '<ol>
<li>Disable the extension</li>
<li>Delete the extension’s files from the filesystem</li>
<li>Upload the new files</li>
<li>Enable the extension</li>
</ol>',
'EXTENSION_REMOVE_HEADLINE' => 'Completely removing an extension from your board',
'EXTENSION_REMOVE_EXPLAIN' => '<ol>
<li>Disable the extension</li>
<li>Delete the extension’s data</li>
<li>Delete the extension’s files from the filesystem</li>
</ol>',
'EXTENSION_INSTALLING_HEADLINE' => 'Installing an extension',
'EXTENSION_INSTALLING_EXPLAIN' => [
0 => 'Download an extension from phpBB’s extensions database',
1 => 'Unzip the extension and upload it to the <samp>ext/</samp> directory of your phpBB board',
2 => 'Enable the extension, here in the Extensions manager',
],
'EXTENSION_REMOVING_HEADLINE' => 'Deleting an extension from your board',
'EXTENSION_REMOVING_EXPLAIN' => [
0 => 'Disable the extension',
1 => 'Delete the extension’s data',
2 => 'Delete the extension‘s files from the filesystem',
],
'EXTENSION_UPDATING_HEADLINE' => 'Updating an extension',
'EXTENSION_UPDATING_EXPLAIN' => [
0 => 'Disable the extension',
1 => 'Delete the extension’s files from the filesystem',
2 => 'Upload the new files',
3 => 'Enable the extension',
],

'EXTENSION_DELETE_DATA_CONFIRM' => 'Are you sure that you wish to delete the data associated with “%s”?<br /><br />This removes all of its data and settings and cannot be undone!',
'EXTENSION_DISABLE_CONFIRM' => 'Are you sure that you wish to disable the “%s” extension?',
Expand Down
13 changes: 13 additions & 0 deletions phpBB/phpbb/template/twig/extension.php
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ public function getFunctions()
new \Twig\TwigFunction('lang', array($this, 'lang')),
new \Twig\TwigFunction('lang_defined', array($this, 'lang_defined')),
new \Twig\TwigFunction('lang_js', [$this, 'lang_js']),
new \Twig\TwigFunction('lang_raw', [$this, 'lang_raw']),
new \Twig\TwigFunction('get_class', 'get_class'),
);
}
Expand Down Expand Up @@ -214,4 +215,16 @@ public function lang_js(): string

return twig_escape_filter($this->environment, call_user_func_array([$this, 'lang'], $args), 'js');
}

/**
* Get raw value associated with lang key
*
* @param string $key
*
* @return array|string Raw value associated with lang key
*/
public function lang_raw(string $key): array|string
{
return call_user_func_array(array($this->language, 'lang_raw'), [$key]);
}
}
6 changes: 3 additions & 3 deletions tests/template/template_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -365,15 +365,15 @@ public function template_data()
array(),
array(),
array(),
"VARIABLE\n1_VARIABLE\nVARIABLE\n1_VARIABLE",
"VARIABLE\n1_VARIABLE\nVARIABLE\n1_VARIABLE\nVARIABLE\n1_VARIABLE\nARY_VARIABLE",
),
array(
'lang_twig.html',
array(),
array(),
array(),
"Value'\n1 O'Clock\nValue\\u0027\n1\\u0020O\\u0027Clock",
array('VARIABLE' => "Value'", '1_VARIABLE' => "1 O'Clock"),
"Value'\n1 O'Clock\nValue\\u0027\n1\\u0020O\\u0027Clock\nValue'\n1 O'Clock\nfoo|bar",
array('VARIABLE' => "Value'", '1_VARIABLE' => "1 O'Clock", 'ARY_VARIABLE' => ['foo', 'bar']),
),
array(
'loop_nested_multilevel_ref.html',
Expand Down
4 changes: 4 additions & 0 deletions tests/template/templates/lang_twig.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@

{{ lang_js('VARIABLE') }}
{{ lang_js('1_VARIABLE') }}

{{ lang_raw('VARIABLE') }}
{{ lang_raw('1_VARIABLE') }}
{{ lang_raw('ARY_VARIABLE')|join('|') }}

0 comments on commit c28b944

Please sign in to comment.