phpBB

Code Changes

File: phpbb/extension/manager.php

  Unmodified   Added   Modified   Removed
Line 149Line 149
	* Instantiates the metadata manager for the extension with the given name
*
* @param string $name The extension name

	* Instantiates the metadata manager for the extension with the given name
*
* @param string $name The extension name

	* @param \phpbb\template\template $template The template manager

	* @param \phpbb\template\template $template The template manager or null

	* @return \phpbb\extension\metadata_manager Instance of the metadata manager
*/

	* @return \phpbb\extension\metadata_manager Instance of the metadata manager
*/

	public function create_extension_metadata_manager($name, \phpbb\template\template $template)

	public function create_extension_metadata_manager($name, \phpbb\template\template $template = null)

	{
return new \phpbb\extension\metadata_manager($name, $this->config, $this, $template, $this->user, $this->phpbb_root_path);
}

	{
return new \phpbb\extension\metadata_manager($name, $this->config, $this, $template, $this->user, $this->phpbb_root_path);
}

Line 433Line 433
			if ($file_info->isFile() && $file_info->getFilename() == 'composer.json')
{
$ext_name = $iterator->getInnerIterator()->getSubPath();

			if ($file_info->isFile() && $file_info->getFilename() == 'composer.json')
{
$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);


// 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'])

				if ($this->is_available($ext_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);

Line 524Line 510
	*/
public function is_available($name)
{

	*/
public function is_available($name)
{

		return file_exists($this->get_extension_path($name, true));









		$md_manager = $this->create_extension_metadata_manager($name);
try
{
return $md_manager->get_metadata('all') && $md_manager->validate_enable();
}
catch (\phpbb\extension\exception $e)
{
return false;
}

	}

/**

	}

/**