phpBB

Code Changes

File: phpbb/extension/manager.php

  Unmodified   Added   Modified   Removed
Line 13Line 13

namespace phpbb\extension;



namespace phpbb\extension;


 
use phpbb\exception\runtime_exception;
use phpbb\file_downloader;

use Symfony\Component\DependencyInjection\ContainerInterface;

/**

use Symfony\Component\DependencyInjection\ContainerInterface;

/**

Line 26Line 28
	protected $db;
protected $config;
protected $cache;

	protected $db;
protected $config;
protected $cache;

	protected $user;

 
	protected $php_ext;
protected $extensions;
protected $extension_table;

	protected $php_ext;
protected $extensions;
protected $extension_table;

Line 39Line 40
	* @param ContainerInterface $container A container
* @param \phpbb\db\driver\driver_interface $db A database connection
* @param \phpbb\config\config $config Config object

	* @param ContainerInterface $container A container
* @param \phpbb\db\driver\driver_interface $db A database connection
* @param \phpbb\config\config $config Config object

	* @param \phpbb\filesystem $filesystem
* @param \phpbb\user $user User object

	* @param \phpbb\filesystem\filesystem_interface $filesystem


	* @param string $extension_table The name of the table holding extensions
* @param string $phpbb_root_path Path to the phpbb includes directory.
* @param string $php_ext php file extension, defaults to php

	* @param string $extension_table The name of the table holding extensions
* @param string $phpbb_root_path Path to the phpbb includes directory.
* @param string $php_ext php file extension, defaults to php

	* @param \phpbb\cache\driver\driver_interface $cache A cache instance or null

	* @param \phpbb\cache\service $cache A cache instance or null

	* @param string $cache_name The name of the cache variable, defaults to _ext
*/

	* @param string $cache_name The name of the cache variable, defaults to _ext
*/

	public function __construct(ContainerInterface $container, \phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, \phpbb\filesystem $filesystem, \phpbb\user $user, $extension_table, $phpbb_root_path, $php_ext = 'php', \phpbb\cache\driver\driver_interface $cache = null, $cache_name = '_ext')

	public function __construct(ContainerInterface $container, \phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, \phpbb\filesystem\filesystem_interface $filesystem, $extension_table, $phpbb_root_path, $php_ext = 'php', \phpbb\cache\service $cache = null, $cache_name = '_ext')

	{
$this->cache = $cache;
$this->cache_name = $cache_name;

	{
$this->cache = $cache;
$this->cache_name = $cache_name;

Line 58Line 58
		$this->filesystem = $filesystem;
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $php_ext;

		$this->filesystem = $filesystem;
$this->phpbb_root_path = $phpbb_root_path;
$this->php_ext = $php_ext;

		$this->user = $user;

 

$this->extensions = ($this->cache) ? $this->cache->get($this->cache_name) : false;



$this->extensions = ($this->cache) ? $this->cache->get($this->cache_name) : false;


Line 149Line 148
	* 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

 
	* @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)

	{

	{

		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, $this->phpbb_root_path);

	}

/**

	}

/**

Line 463Line 461
	*
* All enabled and disabled extensions are considered configured. A purged
* extension that is no longer in the database is not configured.

	*
* All enabled and disabled extensions are considered configured. A purged
* extension that is no longer in the database is not configured.

 
	*
* @param bool $phpbb_relative Whether the path should be relative to phpbb root

	*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/

	*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/

	public function all_configured()

	public function all_configured($phpbb_relative = true)

	{
$configured = array();
foreach ($this->extensions as $name => $data)
{

	{
$configured = array();
foreach ($this->extensions as $name => $data)
{

			$data['ext_path'] = $this->phpbb_root_path . $data['ext_path'];

			$data['ext_path'] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];

			$configured[$name] = $data;
}
return $configured;

			$configured[$name] = $data;
}
return $configured;

Line 480Line 480

/**
* Retrieves all enabled extensions.


/**
* Retrieves all enabled extensions.

 
	* @param bool $phpbb_relative Whether the path should be relative to phpbb root

	*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/

	*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/

	public function all_enabled()

	public function all_enabled($phpbb_relative = true)

	{
$enabled = array();
foreach ($this->extensions as $name => $data)
{
if ($data['ext_active'])
{

	{
$enabled = array();
foreach ($this->extensions as $name => $data)
{
if ($data['ext_active'])
{

				$enabled[$name] = $this->phpbb_root_path . $data['ext_path'];

				$enabled[$name] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];

			}
}
return $enabled;

			}
}
return $enabled;

Line 499Line 500

/**
* Retrieves all disabled extensions.


/**
* Retrieves all disabled extensions.

 
	*
* @param bool $phpbb_relative Whether the path should be relative to phpbb root

	*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/

	*
* @return array An array with extension names as keys and and the
* database stored extension information as values
*/

	public function all_disabled()

	public function all_disabled($phpbb_relative = true)

	{
$disabled = array();
foreach ($this->extensions as $name => $data)
{
if (!$data['ext_active'])
{

	{
$disabled = array();
foreach ($this->extensions as $name => $data)
{
if (!$data['ext_active'])
{

				$disabled[$name] = $this->phpbb_root_path . $data['ext_path'];

				$disabled[$name] = ($phpbb_relative ? $this->phpbb_root_path : '') . $data['ext_path'];

			}
}
return $disabled;

			}
}
return $disabled;

Line 561Line 564
	public function is_configured($name)
{
return isset($this->extensions[$name]);

	public function is_configured($name)
{
return isset($this->extensions[$name]);

 
	}

/**
* Check the version and return the available updates (for an extension).
*
* @param \phpbb\extension\metadata_manager $md_manager The metadata manager for the version to check.
* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @param string $stability Force the stability (null by default).
* @return string
* @throws runtime_exception
*/
public function version_check(\phpbb\extension\metadata_manager $md_manager, $force_update = false, $force_cache = false, $stability = null)
{
$meta = $md_manager->get_metadata('all');

if (!isset($meta['extra']['version-check']))
{
throw new runtime_exception('NO_VERSIONCHECK');
}

$version_check = $meta['extra']['version-check'];

$version_helper = new \phpbb\version_helper($this->cache, $this->config, new file_downloader());
$version_helper->set_current_version($meta['version']);
$version_helper->set_file_location($version_check['host'], $version_check['directory'], $version_check['filename']);
$version_helper->force_stability($stability);

return $updates = $version_helper->get_suggested_updates($force_update, $force_cache);

	}

/**

	}

/**