mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 14:18:52 +00:00
[ticket/14938] Inconsistency in ext_mgr all_available vs is_available
Made is_available much more strict, in line with the checks in all_available Refactor all_available to use is_available, saving duplicate code. PHPBB3-14938
This commit is contained in:
parent
efc2b46303
commit
9658ecae8b
1 changed files with 3 additions and 17 deletions
|
@ -433,25 +433,11 @@ class manager
|
||||||
if ($file_info->isFile() && $file_info->getFilename() == 'composer.json')
|
if ($file_info->isFile() && $file_info->getFilename() == 'composer.json')
|
||||||
{
|
{
|
||||||
$ext_name = $iterator->getInnerIterator()->getSubPath();
|
$ext_name = $iterator->getInnerIterator()->getSubPath();
|
||||||
$composer_file = $iterator->getPath() . '/composer.json';
|
|
||||||
|
|
||||||
// Ignore the extension if there is no composer.json.
|
|
||||||
if (!is_readable($composer_file) || !($ext_info = file_get_contents($composer_file)))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
$ext_info = json_decode($ext_info, true);
|
|
||||||
$ext_name = str_replace(DIRECTORY_SEPARATOR, '/', $ext_name);
|
$ext_name = str_replace(DIRECTORY_SEPARATOR, '/', $ext_name);
|
||||||
|
if ($this->is_available($ext_name))
|
||||||
// Ignore the extension if directory depth is not correct or if the directory structure
|
|
||||||
// does not match the name value specified in composer.json.
|
|
||||||
if (substr_count($ext_name, '/') !== 1 || !isset($ext_info['name']) || $ext_name != $ext_info['name'])
|
|
||||||
{
|
{
|
||||||
continue;
|
$available[$ext_name] = $this->phpbb_root_path . 'ext/' . $ext_name . '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
$available[$ext_name] = $this->phpbb_root_path . 'ext/' . $ext_name . '/';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ksort($available);
|
ksort($available);
|
||||||
|
@ -530,7 +516,7 @@ class manager
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$composer_file = $this->get_extension_path($name, true) . '/composer.json';
|
$composer_file = $this->get_extension_path($name, true) . 'composer.json';
|
||||||
|
|
||||||
// Not available if there is no composer.json.
|
// Not available if there is no composer.json.
|
||||||
if (!is_readable($composer_file) || !($ext_info = file_get_contents($composer_file)))
|
if (!is_readable($composer_file) || !($ext_info = file_get_contents($composer_file)))
|
||||||
|
|
Loading…
Add table
Reference in a new issue