mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-27 21:58:52 +00:00
[ticket/10631] Fixing some items mentioned in PR
PHPBB3-10631
This commit is contained in:
parent
3a5843959c
commit
7a954d352e
8 changed files with 112 additions and 89 deletions
|
@ -18,10 +18,10 @@
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSE IF -->
|
<!-- ELSE IF -->
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_DELETE_SUCESS}</p>
|
<p>{L_DELETE_SUCCESS}</p>
|
||||||
<br />
|
<br />
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
|
|
@ -69,10 +69,6 @@
|
||||||
<dt><label for="author_name">{L_AUTHOR_NAME}:</label></dt>
|
<dt><label for="author_name">{L_AUTHOR_NAME}:</label></dt>
|
||||||
<dd><strong id="author_name">{authors.AUTHOR_NAME}</strong></dd>
|
<dd><strong id="author_name">{authors.AUTHOR_NAME}</strong></dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
|
||||||
<dt><label for="author_email">{L_AUTHOR_USERNAME}:</label></dt>
|
|
||||||
<dd><strong id="author_email">{authors.AUTHOR_USERNAME}</strong></dd>
|
|
||||||
</dl>
|
|
||||||
<!-- IF authors.AUTHOR_EMAIL -->
|
<!-- IF authors.AUTHOR_EMAIL -->
|
||||||
<dl>
|
<dl>
|
||||||
<dt><label for="author_email">{L_AUTHOR_EMAIL}:</label></dt>
|
<dt><label for="author_email">{L_AUTHOR_EMAIL}:</label></dt>
|
||||||
|
@ -94,4 +90,4 @@
|
||||||
<!-- END authors -->
|
<!-- END authors -->
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSE IF -->
|
<!-- ELSE IF -->
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_DISABLE_SUCESS}</p>
|
<p>{L_DISABLE_SUCCESS}</p>
|
||||||
<br />
|
<br />
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSE IF -->
|
<!-- ELSE IF -->
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_ENABLE_SUCESS}</p>
|
<p>{L_ENABLE_SUCCESS}</p>
|
||||||
<br />
|
<br />
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
|
|
@ -18,10 +18,10 @@
|
||||||
</form>
|
</form>
|
||||||
<!-- ELSE IF -->
|
<!-- ELSE IF -->
|
||||||
<div class="successbox">
|
<div class="successbox">
|
||||||
<p>{L_PURGE_SUCESS}</p>
|
<p>{L_PURGE_SUCCESS}</p>
|
||||||
<br />
|
<br />
|
||||||
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
<p><a href="{U_RETURN}">{L_RETURN}</a></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ENDIF -->
|
<!-- ENDIF -->
|
||||||
|
|
||||||
<!-- INCLUDE overall_footer.html -->
|
<!-- INCLUDE overall_footer.html -->
|
||||||
|
|
|
@ -25,28 +25,23 @@ class acp_extensions
|
||||||
function main()
|
function main()
|
||||||
{
|
{
|
||||||
// Start the page
|
// Start the page
|
||||||
global $user, $template, $request;
|
global $user, $template, $request, $phpbb_extension_manager, $db;
|
||||||
|
|
||||||
$user->add_lang(array('install', 'acp/customisations'));
|
$user->add_lang(array('install', 'acp/extensions'));
|
||||||
|
|
||||||
$this->page_title = 'ACP_EXTENSIONS';
|
$this->page_title = 'ACP_EXTENSIONS';
|
||||||
|
|
||||||
$action = $request->variable('action', '');
|
$action = $request->variable('action', 'list');
|
||||||
$ext_name = $request->variable('ext_name', '');
|
$ext_name = $request->variable('ext_name', '');
|
||||||
|
|
||||||
// Set action to list if not set
|
|
||||||
if (empty($action))
|
|
||||||
{
|
|
||||||
$action = 'list';
|
|
||||||
}
|
|
||||||
|
|
||||||
// What are we doing?
|
// What are we doing?
|
||||||
switch ($action)
|
switch ($action)
|
||||||
{
|
{
|
||||||
case 'list':
|
case 'list':
|
||||||
default:
|
default:
|
||||||
$this->list_enabled_exts();
|
$this->list_enabled_exts($db, $template);
|
||||||
$this->list_disabled_exts();
|
$this->list_disabled_exts($db, $template);
|
||||||
|
$this->list_available_exts($phpbb_extension_manager, $template);
|
||||||
$this->tpl_name = 'acp_ext_list';
|
$this->tpl_name = 'acp_ext_list';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -55,13 +50,15 @@ class acp_extensions
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PRE' => true,
|
'PRE' => true,
|
||||||
'U_ENABLE' => $this->u_action . '&action=enable&ext_name=' . $ext_name,
|
'U_ENABLE' => $this->u_action . '&action=enable&ext_name=' . $ext_name,
|
||||||
)
|
));
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'enable':
|
case 'enable':
|
||||||
$this->enable_extension($ext_name);
|
$phpbb_extension_manager->enable($ext_name);
|
||||||
$this->tpl_name = 'acp_ext_enable';
|
$this->tpl_name = 'acp_ext_enable';
|
||||||
|
$template->assign_vars(array(
|
||||||
|
'U_RETURN' => $this->u_action . '&action=list',
|
||||||
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'disable_pre':
|
case 'disable_pre':
|
||||||
|
@ -69,13 +66,15 @@ class acp_extensions
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PRE' => true,
|
'PRE' => true,
|
||||||
'U_DISABLE' => $this->u_action . '&action=disable&ext_name=' . $ext_name,
|
'U_DISABLE' => $this->u_action . '&action=disable&ext_name=' . $ext_name,
|
||||||
)
|
));
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'disable':
|
case 'disable':
|
||||||
$this->disable_extension($ext_name);
|
$phpbb_extension_manager->disable($ext_name);
|
||||||
$this->tpl_name = 'acp_ext_disable';
|
$this->tpl_name = 'acp_ext_disable';
|
||||||
|
$template->assign_vars(array(
|
||||||
|
'U_RETURN' => $this->u_action . '&action=list',
|
||||||
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'purge_pre':
|
case 'purge_pre':
|
||||||
|
@ -83,13 +82,15 @@ class acp_extensions
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PRE' => true,
|
'PRE' => true,
|
||||||
'U_PURGE' => $this->u_action . '&action=purge&ext_name=' . $ext_name,
|
'U_PURGE' => $this->u_action . '&action=purge&ext_name=' . $ext_name,
|
||||||
)
|
));
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'purge':
|
case 'purge':
|
||||||
$this->purge_extension($ext_name);
|
$phpbb_extension_manager->purge($ext_name);
|
||||||
$this->tpl_name = 'acp_ext_purge';
|
$this->tpl_name = 'acp_ext_purge';
|
||||||
|
$template->assign_vars(array(
|
||||||
|
'U_RETURN' => $this->u_action . '&action=list',
|
||||||
|
));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete_pre':
|
case 'delete_pre':
|
||||||
|
@ -97,8 +98,7 @@ class acp_extensions
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'PRE' => true,
|
'PRE' => true,
|
||||||
'U_DELETE' => $this->u_action . '&action=delete&ext_name=' . $ext_name,
|
'U_DELETE' => $this->u_action . '&action=delete&ext_name=' . $ext_name,
|
||||||
)
|
));
|
||||||
);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'delete':
|
case 'delete':
|
||||||
|
@ -108,49 +108,16 @@ class acp_extensions
|
||||||
case 'details':
|
case 'details':
|
||||||
$filepath = $phpbb_root_path . 'ext/' . $ext_name . '/extension.json';
|
$filepath = $phpbb_root_path . 'ext/' . $ext_name . '/extension.json';
|
||||||
$this->tpl_name = 'acp_ext_details';
|
$this->tpl_name = 'acp_ext_details';
|
||||||
$this->get_meta_info($filepath);
|
$this->parse_meta_info($ext_name, $phpbb_extension_manager);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function enable_extension($ext_name)
|
private function list_enabled_exts($db, $template)
|
||||||
{
|
{
|
||||||
global $phpbb_extension_manager, $template, $cache;
|
|
||||||
|
|
||||||
$phpbb_extension_manager->enable($name);
|
|
||||||
$template->assign_vars(array(
|
|
||||||
'U_RETURN' => $this->u_action . '&action=list',
|
|
||||||
));
|
|
||||||
$cache->purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
function disable_extension($ext_name)
|
|
||||||
{
|
|
||||||
global $phpbb_extension_manager, $template, $cache;
|
|
||||||
$phpbb_extension_manager->disable($name);
|
|
||||||
$template->assign_vars(array(
|
|
||||||
'U_RETURN' => $this->u_action . '&action=list',
|
|
||||||
));
|
|
||||||
$cache->purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
function purge_extension($ext_name)
|
|
||||||
{
|
|
||||||
global $phpbb_extension_manager, $template, $cache;
|
|
||||||
$phpbb_extension_manager->purge($name);
|
|
||||||
$template->assign_vars(array(
|
|
||||||
'U_RETURN' => $this->u_action . '&action=list',
|
|
||||||
));
|
|
||||||
$cache->purge();
|
|
||||||
}
|
|
||||||
|
|
||||||
function list_enabled_exts()
|
|
||||||
{
|
|
||||||
global $db, $template;
|
|
||||||
|
|
||||||
$sql = 'SELECT ext_name
|
$sql = 'SELECT ext_name
|
||||||
FROM ' . EXT_TABLE . '
|
FROM ' . EXT_TABLE . '
|
||||||
WHERE ext_active= 1
|
WHERE ext_active = 1
|
||||||
ORDER BY ext_name ASC';
|
ORDER BY ext_name ASC';
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
@ -168,13 +135,11 @@ class acp_extensions
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
function list_disabled_exts()
|
private function list_disabled_exts($db, $template)
|
||||||
{
|
{
|
||||||
global $db, $template;
|
|
||||||
|
|
||||||
$sql = 'SELECT ext_name
|
$sql = 'SELECT ext_name
|
||||||
FROM ' . EXT_TABLE . '
|
FROM ' . EXT_TABLE . '
|
||||||
WHERE ext_active= 0
|
WHERE ext_active = 0
|
||||||
ORDER BY ext_name ASC';
|
ORDER BY ext_name ASC';
|
||||||
$result = $db->sql_query($sql);
|
$result = $db->sql_query($sql);
|
||||||
while ($row = $db->sql_fetchrow($result))
|
while ($row = $db->sql_fetchrow($result))
|
||||||
|
@ -193,7 +158,7 @@ class acp_extensions
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
function list_available_exts()
|
function list_available_exts($phpbb_extension_manager, $template)
|
||||||
{
|
{
|
||||||
$phpbb_extension_manager->load_extensions();
|
$phpbb_extension_manager->load_extensions();
|
||||||
$all_available = array_keys($phpbb_extension_manager->all_available());
|
$all_available = array_keys($phpbb_extension_manager->all_available());
|
||||||
|
@ -214,12 +179,9 @@ class acp_extensions
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
function get_meta_info($filepath)
|
function parse_meta_info($ext_name, $phpbb_extension_manager)
|
||||||
{
|
{
|
||||||
global $template;
|
$phpbb_extension_manager->get_meta_data($ext_name)
|
||||||
|
|
||||||
$metadatafile = file_get_contents($filepath);
|
|
||||||
$metadata = json_decode($metadatafile,true);
|
|
||||||
|
|
||||||
$template->assign_vars(array(
|
$template->assign_vars(array(
|
||||||
'NAME' => $metadata['name'],
|
'NAME' => $metadata['name'],
|
||||||
|
@ -235,15 +197,16 @@ class acp_extensions
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
foreach ($metadata["authors"] as $author)
|
foreach ($metadata['authors'] as $author)
|
||||||
{
|
{
|
||||||
$template->assign_block_vars('authors', array(
|
$template->assign_block_vars('authors', array(
|
||||||
'AUTHOR_NAME' => $author["name"],
|
'AUTHOR_NAME' => $author['name'],
|
||||||
'AUTHOR_USERNAME' => $author["username"],
|
'AUTHOR_EMAIL' => $author['email'],
|
||||||
'AUTHOR_EMAIL' => $author["email"],
|
'AUTHOR_HOMEPAGE' => $author['homepage'],
|
||||||
'AUTHOR_HOMEPAGE' => $author["homepage"],
|
'AUTHOR_ROLE' => $author['role'],
|
||||||
'AUTHOR_ROLE' => $author["role"],
|
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $metadata;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -464,4 +464,68 @@ class phpbb_extension_manager
|
||||||
{
|
{
|
||||||
return new phpbb_extension_finder($this, $this->phpbb_root_path, $this->cache, $this->php_ext, $this->cache_name . '_finder');
|
return new phpbb_extension_finder($this, $this->phpbb_root_path, $this->cache, $this->php_ext, $this->cache_name . '_finder');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets and processes the contents of the composer.json file.
|
||||||
|
*
|
||||||
|
* TODO: Add authors, fix it
|
||||||
|
*
|
||||||
|
* @param string $name Extension name to check
|
||||||
|
* @return array All the existing metadata keys
|
||||||
|
*/
|
||||||
|
public function get_meta_data($name)
|
||||||
|
{
|
||||||
|
// Find out where the composer.json is
|
||||||
|
$ext_filepath = get_extension_path($name);
|
||||||
|
$md_filepath = $phpbb_root_path . $ext_filepath . '/composer.json';
|
||||||
|
|
||||||
|
// Read the composer.json and decode it
|
||||||
|
$metadatafile = file_get_contents($filepath);
|
||||||
|
$metadata = json_decode($metadatafile, true);
|
||||||
|
|
||||||
|
// What keys are required
|
||||||
|
$required_md_keys = array(
|
||||||
|
$metadata['name'],
|
||||||
|
$metadata['type'],
|
||||||
|
$metadata['description'],
|
||||||
|
$metadata['version'],
|
||||||
|
$metadata['license'],
|
||||||
|
$medadata['require']['phpbb'],
|
||||||
|
$metadata['extra']['dispay-name'],
|
||||||
|
);
|
||||||
|
|
||||||
|
// Check for required keys and trigger and error if it doesn't exist
|
||||||
|
foreach ($required_md_keys as $md_key)
|
||||||
|
{
|
||||||
|
if (empty($md_key))
|
||||||
|
{
|
||||||
|
trigger_error('Not all required items exist in the composer.json');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$existing_required_keys += $md_key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Which keys are optional
|
||||||
|
$optional_md_keys = array(
|
||||||
|
$metadata['require']['php'],
|
||||||
|
$metadata['time'],
|
||||||
|
$metadata['homepage'],
|
||||||
|
);
|
||||||
|
|
||||||
|
$existing_optional_keys = array();
|
||||||
|
|
||||||
|
foreach ($optional_md_keys as $md_key)
|
||||||
|
{
|
||||||
|
if (!empty($md_key))
|
||||||
|
{
|
||||||
|
$existing_optional_keys += $md_key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$keys = array_merge($existing_optional_keys, $existing_required_keys);
|
||||||
|
|
||||||
|
return $keys;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,7 @@ $lang = array_merge($lang, array(
|
||||||
'EXTENSION' => 'Extension',
|
'EXTENSION' => 'Extension',
|
||||||
'EXTENSIONS' => 'Extensions',
|
'EXTENSIONS' => 'Extensions',
|
||||||
'EXTENSIONS_ADMIN' => 'Extensions Admin',
|
'EXTENSIONS_ADMIN' => 'Extensions Admin',
|
||||||
'EXTENSIONS_EXPLAIN' => 'The Extensions Admin is a tool in your phpBB Board which allows you to manage all of your extensions. For more information about extensions please visit <a href="http://phpbb.com/mods/extensions/">this page</a> on phpBBs Offical Website.',
|
'EXTENSIONS_EXPLAIN' => 'The Extensions Admin is a tool in your phpBB Board which allows you to manage all of your extensions. For more information about extensions please visit <a href="http://phpbb.com/mods/extensions/">this page</a> on phpBB's Offical Website.',
|
||||||
|
|
||||||
'DETAILS' => 'Details',
|
'DETAILS' => 'Details',
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue