1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-07 17:33:32 +02:00

[ticket/11150] Do not generate actions links in templates

PHPBB3-11150
This commit is contained in:
Tristan Darricau 2017-04-07 20:00:06 +02:00
parent d59b26dcec
commit ab162b2fa6
No known key found for this signature in database
GPG Key ID: 817043C2E29DB881
3 changed files with 91 additions and 14 deletions

View File

@ -59,7 +59,7 @@
<td style="text-align: center;"><a href="{enabled.U_DETAILS}">{L_DETAILS}</a></td>
<td style="text-align: center;">
<!-- BEGIN actions -->
<a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
<a href="{enabled.actions.U_ACTION}"<!-- IF enabled.actions.L_ACTION_EXPLAIN --> title="{enabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF --><!-- IF enabled.actions.COLOR --> style="color: {enabled.actions.COLOR};"<!-- ENDIF -->>{enabled.actions.L_ACTION}</a>
<!-- IF not enabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions -->
</td>
@ -86,15 +86,9 @@
</td>
<td style="text-align: center;">
<!-- BEGIN actions -->
<a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
<a href="{disabled.actions.U_ACTION}"<!-- IF disabled.actions.L_ACTION_EXPLAIN --> title="{disabled.actions.L_ACTION_EXPLAIN}"<!-- ENDIF --><!-- IF disabled.actions.COLOR --> style="color: {disabled.actions.COLOR};"<!-- ENDIF -->>{disabled.actions.L_ACTION}</a>
<!-- IF not disabled.actions.S_LAST_ROW -->&nbsp;|&nbsp;<!-- ENDIF -->
<!-- END actions -->
<!-- IF disabled.META_NAME in MANAGED_EXTENSIONS -->
<!-- IF disabled.actions is defined -->&nbsp;|&nbsp;<!-- ENDIF -->
<a href="{U_CATALOG_ACTION}&amp;action=update&amp;extension={disabled.META_NAME}">{L_UPDATE}</a>
&nbsp;|&nbsp;<a href="{U_CATALOG_ACTION}&amp;action=remove&amp;extension={disabled.META_NAME}" style="color: #BC2A4D;">{L_REMOVE}</a>
<!-- ENDIF -->
</td>
</tr>
<!-- END disabled -->

View File

@ -41,7 +41,13 @@ class acp_extensions
private $phpbb_dispatcher;
private $ext_manager;
<<<<<<< 6c9f0a1c6fa9cfe406242bbf5f3204221003a00a
function main()
=======
private $u_catalog_action;
function main($id, $mode)
>>>>>>> [ticket/11150] Do not generate actions links in templates
{
// Start the page
global $config, $user, $template, $request, $phpbb_extension_manager, $db, $phpbb_root_path, $phpbb_log, $phpbb_dispatcher;
@ -132,6 +138,8 @@ class acp_extensions
}
}
$this->u_catalog_action = append_sid("{$phpbb_admin_path}index.$phpEx", "i=$id&amp;mode=catalog");
// What are we doing?
switch ($action)
{
@ -165,10 +173,13 @@ class acp_extensions
trigger_error($this->user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
}
<<<<<<< 6c9f0a1c6fa9cfe406242bbf5f3204221003a00a
$this->list_enabled_exts();
$this->list_disabled_exts();
$this->list_available_exts();
=======
>>>>>>> [ticket/11150] Do not generate actions links in templates
/** @var \phpbb\composer\manager $composer_manager */
$composer_manager = $phpbb_container->get('ext.composer.manager');
@ -176,15 +187,20 @@ class acp_extensions
$managed_packages = [];
if ($composer_manager->check_requirements())
{
$managed_packages = array_keys($composer_manager->get_managed_packages());
$managed_packages = $composer_manager->get_managed_packages();
}
$this->request->disable_super_globals();
$this->list_enabled_exts($phpbb_extension_manager, $managed_packages);
$this->list_disabled_exts($phpbb_extension_manager, $managed_packages);
$this->list_available_exts($phpbb_extension_manager, $managed_packages);
$this->template->assign_vars(array(
'U_VERSIONCHECK_FORCE' => $this->u_action . '&amp;action=list&amp;versioncheck_force=1',
'FORCE_UNSTABLE' => $this->config['extension_force_unstable'],
'U_ACTION' => $this->u_action,
'MANAGED_EXTENSIONS' => $managed_packages,
'U_CATALOG_ACTION' => append_sid("{$phpbb_admin_path}index.$phpEx", "i=$id&amp;mode=catalog"),
'U_CATALOG_ACTION' => $this->u_catalog_action,
));
$this->request->disable_super_globals();
@ -753,11 +769,21 @@ class acp_extensions
}
/**
<<<<<<< 6c9f0a1c6fa9cfe406242bbf5f3204221003a00a
* Lists all the enabled extensions and dumps to the template
*
* @return null
*/
public function list_enabled_exts()
=======
* Lists all the enabled extensions and dumps to the template
*
* @param \phpbb\extension\manager $phpbb_extension_manager An instance of the extension manager
* @param array $managed_packages List of managed packages
* @return null
*/
public function list_enabled_exts(\phpbb\extension\manager $phpbb_extension_manager, array $managed_packages)
>>>>>>> [ticket/11150] Do not generate actions links in templates
{
$enabled_extension_meta_data = array();
@ -821,15 +847,37 @@ class acp_extensions
$this->output_actions('enabled', array(
'DISABLE' => $this->u_action . '&amp;action=disable_pre&amp;ext_name=' . urlencode($name),
));
if (isset($managed_packages[$block_vars['META_NAME']]))
{
$this->output_actions('disabled', [
'UPDATE' => $this->u_catalog_action . '&amp;action=update&amp;extension=' . urlencode($block_vars['META_NAME']),
'REMOVE' => [
'url' => $this->u_catalog_action . '&amp;action=remove&amp;extension=' . urlencode($block_vars['META_NAME']),
'color' => '#BC2A4D;',
]
]);
}
}
}
/**
<<<<<<< 6c9f0a1c6fa9cfe406242bbf5f3204221003a00a
* Lists all the disabled extensions and dumps to the template
*
* @return null
*/
public function list_disabled_exts()
=======
* Lists all the disabled extensions and dumps to the template
*
* @param \phpbb\extension\manager $phpbb_extension_manager An instance of the extension manager
* @param array $managed_packages List of managed packages
*
* @return null
*/
public function list_disabled_exts(\phpbb\extension\manager $phpbb_extension_manager, array $managed_packages)
>>>>>>> [ticket/11150] Do not generate actions links in templates
{
$disabled_extension_meta_data = array();
@ -891,15 +939,36 @@ class acp_extensions
'ENABLE' => $this->u_action . '&amp;action=enable_pre&amp;ext_name=' . urlencode($name),
'DELETE_DATA' => $this->u_action . '&amp;action=delete_data_pre&amp;ext_name=' . urlencode($name),
));
if (isset($managed_packages[$block_vars['META_NAME']]))
{
$this->output_actions('disabled', [
'UPDATE' => $this->u_catalog_action . '&amp;action=update&amp;extension=' . urlencode($block_vars['META_NAME']),
'REMOVE' => [
'url' => $this->u_catalog_action . '&amp;action=remove&amp;extension=' . urlencode($block_vars['META_NAME']),
'color' => '#BC2A4D;',
]
]);
}
}
}
/**
* Lists all the available extensions and dumps to the template
<<<<<<< 6c9f0a1c6fa9cfe406242bbf5f3204221003a00a
*
* @return null
*/
public function list_available_exts()
=======
*
* @param \phpbb\extension\manager $phpbb_extension_manager An instance of the extension manager
* @param array $managed_packages List of managed packages
*
* @return null
*/
public function list_available_exts(\phpbb\extension\manager $phpbb_extension_manager, array $managed_packages)
>>>>>>> [ticket/11150] Do not generate actions links in templates
{
$uninstalled = array_diff_key($this->ext_manager->all_available(), $this->ext_manager->all_configured());
@ -969,13 +1038,26 @@ class acp_extensions
*/
private function output_actions($block, $actions)
{
foreach ($actions as $lang => $url)
foreach ($actions as $lang => $options)
{
$this->template->assign_block_vars($block . '.actions', array(
$url = $options;
if (is_array($options))
{
$url = $options['url'];
}
$vars = array(
'L_ACTION' => $this->user->lang('EXTENSION_' . $lang),
'L_ACTION_EXPLAIN' => (isset($this->user->lang['EXTENSION_' . $lang . '_EXPLAIN'])) ? $this->user->lang('EXTENSION_' . $lang . '_EXPLAIN') : '',
'U_ACTION' => $url,
));
);
if (isset($options['color']))
{
$vars['COLOR'] = $options['color'];
}
$this->template->assign_block_vars($block . '.actions', $vars);
}
}

View File

@ -59,7 +59,6 @@ $lang = array_merge($lang, array(
'EXTENSION_NOT_AVAILABLE' => 'The selected extension is not available for this board, please verify your phpBB and PHP versions are allowed (see the details page).',
'EXTENSION_DIR_INVALID' => 'The selected extension has an invalid directory structure and cannot be enabled.',
'EXTENSION_NOT_ENABLEABLE' => 'The selected extension cannot be enabled, please verify the extensions requirements.',
'EXTENSION_NOT_INSTALLED' => 'The extension %s is not available. Please check that you have installed it correctly.',
'DETAILS' => 'Details',
@ -69,6 +68,8 @@ $lang = array_merge($lang, array(
'EXTENSION_DELETE_DATA' => 'Delete data',
'EXTENSION_DISABLE' => 'Disable',
'EXTENSION_ENABLE' => 'Enable',
'EXTENSION_UPDATE' => 'Update',
'EXTENSION_REMOVE' => 'Remove',
'EXTENSION_DELETE_DATA_EXPLAIN' => 'Deleting an extensions 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.',