diff options
Diffstat (limited to 'phpBB/phpbb')
| -rw-r--r-- | phpBB/phpbb/cache/driver/base.php | 213 | ||||
| -rw-r--r-- | phpBB/phpbb/cache/driver/file.php | 204 | ||||
| -rw-r--r-- | phpBB/phpbb/cache/driver/memory.php | 171 | ||||
| -rw-r--r-- | phpBB/phpbb/cache/service.php | 12 | ||||
| -rw-r--r-- | phpBB/phpbb/composer.json | 27 | ||||
| -rw-r--r-- | phpBB/phpbb/content_visibility.php | 41 | ||||
| -rw-r--r-- | phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php | 38 | ||||
| -rw-r--r-- | phpBB/phpbb/db/tools.php | 2 | ||||
| -rw-r--r-- | phpBB/phpbb/extension/metadata_manager.php | 21 | 
9 files changed, 315 insertions, 414 deletions
diff --git a/phpBB/phpbb/cache/driver/base.php b/phpBB/phpbb/cache/driver/base.php index 685cdc4e57..4c20ad916d 100644 --- a/phpBB/phpbb/cache/driver/base.php +++ b/phpBB/phpbb/cache/driver/base.php @@ -15,4 +15,217 @@ namespace phpbb\cache\driver;  abstract class base implements \phpbb\cache\driver\driver_interface  { +	var $vars = array(); +	var $is_modified = false; + +	var $sql_rowset = array(); +	var $sql_row_pointer = array(); +	var $cache_dir = ''; + +	/** +	* {@inheritDoc} +	*/ +	function purge() +	{ +		// Purge all phpbb cache files +		try +		{ +			$iterator = new \DirectoryIterator($this->cache_dir); +		} +		catch (\Exception $e) +		{ +			return; +		} + +		foreach ($iterator as $fileInfo) +		{ +			if ($fileInfo->isDot()) +			{ +				continue; +			} +			$filename = $fileInfo->getFilename(); +			if ($fileInfo->isDir()) +			{ +				$this->remove_dir($fileInfo->getPathname()); +			} +			else if (strpos($filename, 'container_') === 0 || +				strpos($filename, 'url_matcher') === 0 || +				strpos($filename, 'sql_') === 0 || +				strpos($filename, 'data_') === 0) +			{ +				$this->remove_file($fileInfo->getPathname()); +			} +		} + +		unset($this->vars); +		unset($this->sql_rowset); +		unset($this->sql_row_pointer); + +		$this->vars = array(); +		$this->sql_rowset = array(); +		$this->sql_row_pointer = array(); + +		$this->is_modified = false; +	} + +	/** +	* {@inheritDoc} +	*/ +	function unload() +	{ +		$this->save(); +		unset($this->vars); +		unset($this->sql_rowset); +		unset($this->sql_row_pointer); + +		$this->vars = array(); +		$this->sql_rowset = array(); +		$this->sql_row_pointer = array(); +	} + +	/** +	* {@inheritDoc} +	*/ +	function sql_load($query) +	{ +		// Remove extra spaces and tabs +		$query = preg_replace('/[\n\r\s\t]+/', ' ', $query); + +		if (($rowset = $this->_read('sql_' . md5($query))) === false) +		{ +			return false; +		} + +		$query_id = sizeof($this->sql_rowset); +		$this->sql_rowset[$query_id] = $rowset; +		$this->sql_row_pointer[$query_id] = 0; + +		return $query_id; +	} + +	/** +	* {@inheritDoc} +	*/ +	function sql_exists($query_id) +	{ +		return isset($this->sql_rowset[$query_id]); +	} + +	/** +	* {@inheritDoc} +	*/ +	function sql_fetchrow($query_id) +	{ +		if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) +		{ +			return $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++]; +		} + +		return false; +	} + +	/** +	* {@inheritDoc} +	*/ +	function sql_fetchfield($query_id, $field) +	{ +		if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) +		{ +			return (isset($this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field])) ? $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++][$field] : false; +		} + +		return false; +	} + +	/** +	* {@inheritDoc} +	*/ +	function sql_rowseek($rownum, $query_id) +	{ +		if ($rownum >= sizeof($this->sql_rowset[$query_id])) +		{ +			return false; +		} + +		$this->sql_row_pointer[$query_id] = $rownum; +		return true; +	} + +	/** +	* {@inheritDoc} +	*/ +	function sql_freeresult($query_id) +	{ +		if (!isset($this->sql_rowset[$query_id])) +		{ +			return false; +		} + +		unset($this->sql_rowset[$query_id]); +		unset($this->sql_row_pointer[$query_id]); + +		return true; +	} + +	/** +	* Removes/unlinks file +	* +	* @param string $filename Filename to remove +	* @param bool $check Check file permissions +	* @return bool True if the file was successfully removed, otherwise false +	*/ +	function remove_file($filename, $check = false) +	{ +		if (!function_exists('phpbb_is_writable')) +		{ +			global $phpbb_root_path, $phpEx; +			include($phpbb_root_path . 'includes/functions.' . $phpEx); +		} + +		if ($check && !phpbb_is_writable($this->cache_dir)) +		{ +			// E_USER_ERROR - not using language entry - intended. +			trigger_error('Unable to remove files within ' . $this->cache_dir . '. Please check directory permissions.', E_USER_ERROR); +		} + +		return @unlink($filename); +	} + +	/** +	* Remove directory +	* +	* @param string $dir Directory to remove +	* +	* @return null +	*/ +	protected function remove_dir($dir) +	{ +		try +		{ +			$iterator = new \DirectoryIterator($dir); +		} +		catch (\Exception $e) +		{ +			return; +		} + +		foreach ($iterator as $fileInfo) +		{ +			if ($fileInfo->isDot()) +			{ +				continue; +			} + +			if ($fileInfo->isDir()) +			{ +				$this->remove_dir($fileInfo->getPathname()); +			} +			else +			{ +				$this->remove_file($fileInfo->getPathname()); +			} +		} + +		@rmdir($dir); +	}  } diff --git a/phpBB/phpbb/cache/driver/file.php b/phpBB/phpbb/cache/driver/file.php index b32af32d25..fd5bce4515 100644 --- a/phpBB/phpbb/cache/driver/file.php +++ b/phpBB/phpbb/cache/driver/file.php @@ -18,13 +18,7 @@ namespace phpbb\cache\driver;  */  class file extends \phpbb\cache\driver\base  { -	var $vars = array();  	var $var_expires = array(); -	var $is_modified = false; - -	var $sql_rowset = array(); -	var $sql_row_pointer = array(); -	var $cache_dir = '';  	/**  	* Set cache path @@ -50,16 +44,9 @@ class file extends \phpbb\cache\driver\base  	*/  	function unload()  	{ -		$this->save(); -		unset($this->vars); +		parent::unload();  		unset($this->var_expires); -		unset($this->sql_rowset); -		unset($this->sql_row_pointer); - -		$this->vars = array();  		$this->var_expires = array(); -		$this->sql_rowset = array(); -		$this->sql_row_pointer = array();  	}  	/** @@ -166,8 +153,6 @@ class file extends \phpbb\cache\driver\base  	{  		if ($var_name[0] == '_')  		{ -			global $phpEx; -  			if (!$this->_exists($var_name))  			{  				return false; @@ -203,85 +188,8 @@ class file extends \phpbb\cache\driver\base  	*/  	function purge()  	{ -		// Purge all phpbb cache files -		try -		{ -			$iterator = new \DirectoryIterator($this->cache_dir); -		} -		catch (Exception $e) -		{ -			return; -		} - -		foreach ($iterator as $fileInfo) -		{ -			if ($fileInfo->isDot()) -			{ -				continue; -			} -			$filename = $fileInfo->getFilename(); -			if ($fileInfo->isDir()) -			{ -				$this->remove_dir($fileInfo->getPathname()); -			} -			else if (strpos($filename, 'container_') === 0 || -				strpos($filename, 'url_matcher') === 0 || -				strpos($filename, 'sql_') === 0 || -				strpos($filename, 'data_') === 0) -			{ -				$this->remove_file($fileInfo->getPathname()); -			} -		} - -		unset($this->vars); -		unset($this->var_expires); -		unset($this->sql_rowset); -		unset($this->sql_row_pointer); - -		$this->vars = array(); +		parent::purge();  		$this->var_expires = array(); -		$this->sql_rowset = array(); -		$this->sql_row_pointer = array(); - -		$this->is_modified = false; -	} - -	/** -	* Remove directory -	* -	* @param string $dir Directory to remove -	* -	* @return null -	*/ -	protected function remove_dir($dir) -	{ -		try -		{ -			$iterator = new \DirectoryIterator($dir); -		} -		catch (Exception $e) -		{ -			return; -		} - -		foreach ($iterator as $fileInfo) -		{ -			if ($fileInfo->isDot()) -			{ -				continue; -			} - -			if ($fileInfo->isDir()) -			{ -				$this->remove_dir($fileInfo->getPathname()); -			} -			else -			{ -				$this->remove_file($fileInfo->getPathname()); -			} -		} - -		@rmdir($dir);  	}  	/** @@ -392,26 +300,6 @@ class file extends \phpbb\cache\driver\base  	/**  	* {@inheritDoc}  	*/ -	function sql_load($query) -	{ -		// Remove extra spaces and tabs -		$query = preg_replace('/[\n\r\s\t]+/', ' ', $query); - -		if (($rowset = $this->_read('sql_' . md5($query))) === false) -		{ -			return false; -		} - -		$query_id = sizeof($this->sql_rowset); -		$this->sql_rowset[$query_id] = $rowset; -		$this->sql_row_pointer[$query_id] = 0; - -		return $query_id; -	} - -	/** -	* {@inheritDoc} -	*/  	function sql_save(\phpbb\db\driver\driver_interface $db, $query, $query_result, $ttl)  	{  		// Remove extra spaces and tabs @@ -436,70 +324,6 @@ class file extends \phpbb\cache\driver\base  	}  	/** -	* {@inheritDoc} -	*/ -	function sql_exists($query_id) -	{ -		return isset($this->sql_rowset[$query_id]); -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_fetchrow($query_id) -	{ -		if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) -		{ -			return $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++]; -		} - -		return false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_fetchfield($query_id, $field) -	{ -		if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) -		{ -			return (isset($this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field])) ? $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++][$field] : false; -		} - -		return false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_rowseek($rownum, $query_id) -	{ -		if ($rownum >= sizeof($this->sql_rowset[$query_id])) -		{ -			return false; -		} - -		$this->sql_row_pointer[$query_id] = $rownum; -		return true; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_freeresult($query_id) -	{ -		if (!isset($this->sql_rowset[$query_id])) -		{ -			return false; -		} - -		unset($this->sql_rowset[$query_id]); -		unset($this->sql_row_pointer[$query_id]); - -		return true; -	} - -	/**  	* Read cached data from a specified file  	*  	* @access private @@ -760,28 +584,4 @@ class file extends \phpbb\cache\driver\base  		return $return_value;  	} - -	/** -	* Removes/unlinks file -	* -	* @param string $filename Filename to remove -	* @param bool $check Check file permissions -	* @return bool True if the file was successfully removed, otherwise false -	*/ -	function remove_file($filename, $check = false) -	{ -		if (!function_exists('phpbb_is_writable')) -		{ -			global $phpbb_root_path, $phpEx; -			include($phpbb_root_path . 'includes/functions.' . $phpEx); -		} - -		if ($check && !phpbb_is_writable($this->cache_dir)) -		{ -			// E_USER_ERROR - not using language entry - intended. -			trigger_error('Unable to remove files within ' . $this->cache_dir . '. Please check directory permissions.', E_USER_ERROR); -		} - -		return @unlink($filename); -	}  } diff --git a/phpBB/phpbb/cache/driver/memory.php b/phpBB/phpbb/cache/driver/memory.php index 5dee375192..56308be8da 100644 --- a/phpBB/phpbb/cache/driver/memory.php +++ b/phpBB/phpbb/cache/driver/memory.php @@ -20,13 +20,6 @@ abstract class memory extends \phpbb\cache\driver\base  {  	var $key_prefix; -	var $vars = array(); -	var $is_modified = false; - -	var $sql_rowset = array(); -	var $sql_row_pointer = array(); -	var $cache_dir = ''; -  	/**  	* Set cache path  	*/ @@ -71,21 +64,6 @@ abstract class memory extends \phpbb\cache\driver\base  	/**  	* {@inheritDoc}  	*/ -	function unload() -	{ -		$this->save(); -		unset($this->vars); -		unset($this->sql_rowset); -		unset($this->sql_row_pointer); - -		$this->vars = array(); -		$this->sql_rowset = array(); -		$this->sql_row_pointer = array(); -	} - -	/** -	* {@inheritDoc} -	*/  	function save()  	{  		if (!$this->is_modified) @@ -147,47 +125,6 @@ abstract class memory extends \phpbb\cache\driver\base  	/**  	* {@inheritDoc}  	*/ -	function purge() -	{ -		// Purge all phpbb cache files -		$dir = @opendir($this->cache_dir); - -		if (!$dir) -		{ -			return; -		} - -		while (($entry = readdir($dir)) !== false) -		{ -			if (strpos($entry, 'container_') !== 0 && -				strpos($entry, 'url_matcher') !== 0 && -				strpos($entry, 'sql_') !== 0 && -				strpos($entry, 'data_') !== 0 && -				strpos($entry, 'ctpl_') !== 0 && -				strpos($entry, 'tpl_') !== 0) -			{ -				continue; -			} - -			$this->remove_file($this->cache_dir . $entry); -		} -		closedir($dir); - -		unset($this->vars); -		unset($this->sql_rowset); -		unset($this->sql_row_pointer); - -		$this->vars = array(); -		$this->sql_rowset = array(); -		$this->sql_row_pointer = array(); - -		$this->is_modified = false; -	} - - -	/** -	* {@inheritDoc} -	*/  	function destroy($var_name, $table = '')  	{  		if ($var_name == 'sql' && !empty($table)) @@ -262,26 +199,6 @@ abstract class memory extends \phpbb\cache\driver\base  	/**  	* {@inheritDoc}  	*/ -	function sql_load($query) -	{ -		// Remove extra spaces and tabs -		$query = preg_replace('/[\n\r\s\t]+/', ' ', $query); -		$query_id = sizeof($this->sql_rowset); - -		if (($result = $this->_read('sql_' . md5($query))) === false) -		{ -			return false; -		} - -		$this->sql_rowset[$query_id] = $result; -		$this->sql_row_pointer[$query_id] = 0; - -		return $query_id; -	} - -	/** -	* {@inheritDoc} -	*/  	function sql_save(\phpbb\db\driver\driver_interface $db, $query, $query_result, $ttl)  	{  		// Remove extra spaces and tabs @@ -338,94 +255,6 @@ abstract class memory extends \phpbb\cache\driver\base  	}  	/** -	* {@inheritDoc} -	*/ -	function sql_exists($query_id) -	{ -		return isset($this->sql_rowset[$query_id]); -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_fetchrow($query_id) -	{ -		if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) -		{ -			return $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++]; -		} - -		return false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_fetchfield($query_id, $field) -	{ -		if ($this->sql_row_pointer[$query_id] < sizeof($this->sql_rowset[$query_id])) -		{ -			return (isset($this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]][$field])) ? $this->sql_rowset[$query_id][$this->sql_row_pointer[$query_id]++][$field] : false; -		} - -		return false; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_rowseek($rownum, $query_id) -	{ -		if ($rownum >= sizeof($this->sql_rowset[$query_id])) -		{ -			return false; -		} - -		$this->sql_row_pointer[$query_id] = $rownum; -		return true; -	} - -	/** -	* {@inheritDoc} -	*/ -	function sql_freeresult($query_id) -	{ -		if (!isset($this->sql_rowset[$query_id])) -		{ -			return false; -		} - -		unset($this->sql_rowset[$query_id]); -		unset($this->sql_row_pointer[$query_id]); - -		return true; -	} - -	/** -	* Removes/unlinks file -	* -	* @param string $filename Filename to remove -	* @param bool $check Check file permissions -	* @return bool True if the file was successfully removed, otherwise false -	*/ -	function remove_file($filename, $check = false) -	{ -		if (!function_exists('phpbb_is_writable')) -		{ -			global $phpbb_root_path, $phpEx; -			include($phpbb_root_path . 'includes/functions.' . $phpEx); -		} - -		if ($check && !phpbb_is_writable($this->cache_dir)) -		{ -			// E_USER_ERROR - not using language entry - intended. -			trigger_error('Unable to remove files within ' . $this->cache_dir . '. Please check directory permissions.', E_USER_ERROR); -		} - -		return @unlink($filename); -	} - -	/**  	* Check if a cache var exists  	*  	* @access protected diff --git a/phpBB/phpbb/cache/service.php b/phpBB/phpbb/cache/service.php index b890d90558..56727c2ad5 100644 --- a/phpBB/phpbb/cache/service.php +++ b/phpBB/phpbb/cache/service.php @@ -168,18 +168,12 @@ class service  			{  				if ($row['rank_special'])  				{ -					$ranks['special'][$row['rank_id']] = array( -						'rank_title'	=>	$row['rank_title'], -						'rank_image'	=>	$row['rank_image'] -					); +					unset($row['rank_min']); +					$ranks['special'][$row['rank_id']] = $row;  				}  				else  				{ -					$ranks['normal'][] = array( -						'rank_title'	=>	$row['rank_title'], -						'rank_min'		=>	$row['rank_min'], -						'rank_image'	=>	$row['rank_image'] -					); +					$ranks['normal'][$row['rank_id']] = $row;  				}  			}  			$this->db->sql_freeresult($result); diff --git a/phpBB/phpbb/composer.json b/phpBB/phpbb/composer.json new file mode 100644 index 0000000000..513d7e4559 --- /dev/null +++ b/phpBB/phpbb/composer.json @@ -0,0 +1,27 @@ +{ +	"name": "phpbb/phpbb-core", +	"description": "Collection of core phpBB libraries", +	"type": "library", +	"keywords": ["phpbb", "forum"], +	"homepage": "https://www.phpbb.com", +	"license": "GPL-2.0", +	"authors": [ +		{ +			"name": "phpBB Limited", +			"email": "operations@phpbb.com", +			"homepage": "https://www.phpbb.com/go/authors" +		} +	], +	"support": { +		"issues": "https://tracker.phpbb.com", +		"forum": "https://www.phpbb.com/community/", +		"wiki": "https://wiki.phpbb.com", +		"irc": "irc://irc.freenode.org/phpbb" +	}, +	"autoload": { +		"classmap": [""] +	}, +	"require": { +		"php": ">=5.3.3" +    } +} diff --git a/phpBB/phpbb/content_visibility.php b/phpBB/phpbb/content_visibility.php index 1f50032f26..da4405d676 100644 --- a/phpBB/phpbb/content_visibility.php +++ b/phpBB/phpbb/content_visibility.php @@ -38,6 +38,12 @@ class content_visibility  	protected $auth;  	/** +	* config object +	* @var \phpbb\config\config +	*/ +	protected $config; + +	/**  	* phpBB root path  	* @var string  	*/ @@ -53,6 +59,7 @@ class content_visibility  	* Constructor  	*  	* @param	\phpbb\auth\auth		$auth	Auth object +	* @param	\phpbb\config\config	$config	Config object  	* @param	\phpbb\db\driver\driver_interface	$db		Database object  	* @param	\phpbb\user		$user			User object  	* @param	string		$phpbb_root_path	Root path @@ -62,9 +69,10 @@ class content_visibility  	* @param	string		$topics_table		Topics table name  	* @param	string		$users_table		Users table name  	*/ -	public function __construct(\phpbb\auth\auth $auth, \phpbb\db\driver\driver_interface $db, \phpbb\user $user, $phpbb_root_path, $php_ext, $forums_table, $posts_table, $topics_table, $users_table) +	public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, \phpbb\db\driver\driver_interface $db, \phpbb\user $user, $phpbb_root_path, $php_ext, $forums_table, $posts_table, $topics_table, $users_table)  	{  		$this->auth = $auth; +		$this->config = $config;  		$this->db = $db;  		$this->user = $user;  		$this->phpbb_root_path = $phpbb_root_path; @@ -576,7 +584,7 @@ class content_visibility  			$sql_data[$this->users_table] = (($sql_data[$this->users_table]) ? $sql_data[$this->users_table] . ', ' : '') . 'user_posts = user_posts + 1';  		} -		set_config_count('num_posts', 1, true); +		$this->config->increment('num_posts', 1, false);  	}  	/** @@ -588,15 +596,28 @@ class content_visibility  	*/  	public function remove_post_from_statistic($data, &$sql_data)  	{ -		$sql_data[$this->topics_table] = ((!empty($sql_data[$this->topics_table])) ? $sql_data[$this->topics_table] . ', ' : '') . 'topic_posts_approved = topic_posts_approved - 1'; -		$sql_data[$this->forums_table] = ((!empty($sql_data[$this->forums_table])) ? $sql_data[$this->forums_table] . ', ' : '') . 'forum_posts_approved = forum_posts_approved - 1'; +		if ($data['post_visibility'] == ITEM_APPROVED) +		{ +			$sql_data[$this->topics_table] = ((!empty($sql_data[$this->topics_table])) ? $sql_data[$this->topics_table] . ', ' : '') . 'topic_posts_approved = topic_posts_approved - 1'; +			$sql_data[$this->forums_table] = ((!empty($sql_data[$this->forums_table])) ? $sql_data[$this->forums_table] . ', ' : '') . 'forum_posts_approved = forum_posts_approved - 1'; -		if ($data['post_postcount']) +			if ($data['post_postcount']) +			{ +				$sql_data[$this->users_table] = ((!empty($sql_data[$this->users_table])) ? $sql_data[$this->users_table] . ', ' : '') . 'user_posts = user_posts - 1'; +			} + +			$this->config->increment('num_posts', -1, false); +		} +		else if ($data['post_visibility'] == ITEM_UNAPPROVED || $data['post_visibility'] == ITEM_REAPPROVE)  		{ -			$sql_data[$this->users_table] = ((!empty($sql_data[$this->users_table])) ? $sql_data[$this->users_table] . ', ' : '') . 'user_posts = user_posts - 1'; +			$sql_data[FORUMS_TABLE] = (($sql_data[FORUMS_TABLE]) ? $sql_data[FORUMS_TABLE] . ', ' : '') . 'forum_posts_unapproved = forum_posts_unapproved - 1'; +			$sql_data[TOPICS_TABLE] = (($sql_data[TOPICS_TABLE]) ? $sql_data[TOPICS_TABLE] . ', ' : '') . 'topic_posts_unapproved = topic_posts_unapproved - 1'; +		} +		else if ($data['post_visibility'] == ITEM_DELETED) +		{ +			$sql_data[FORUMS_TABLE] = (($sql_data[FORUMS_TABLE]) ? $sql_data[FORUMS_TABLE] . ', ' : '') . 'forum_posts_softdeleted = forum_posts_softdeleted - 1'; +			$sql_data[TOPICS_TABLE] = (($sql_data[TOPICS_TABLE]) ? $sql_data[TOPICS_TABLE] . ', ' : '') . 'topic_posts_softdeleted = topic_posts_softdeleted - 1';  		} - -		set_config_count('num_posts', -1, true);  	}  	/** @@ -627,8 +648,8 @@ class content_visibility  		$sql_data[$this->forums_table] .= ', forum_posts_unapproved = forum_posts_unapproved - ' . $topic_row['topic_posts_unapproved'];  		$sql_data[$this->forums_table] .= ', forum_posts_softdeleted = forum_posts_softdeleted - ' . $topic_row['topic_posts_softdeleted']; -		set_config_count('num_topics', -1, true); -		set_config_count('num_posts', $topic_row['topic_posts_approved'] * (-1), true); +		$this->config->increment('num_topics', -1, false); +		$this->config->increment('num_posts', $topic_row['topic_posts_approved'] * (-1), false);  		// Get user post count information  		$sql = 'SELECT poster_id, COUNT(post_id) AS num_posts diff --git a/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php b/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php new file mode 100644 index 0000000000..8d2a15d8ea --- /dev/null +++ b/phpBB/phpbb/db/migration/data/v310/rename_too_long_indexes.php @@ -0,0 +1,38 @@ +<?php +/** +* +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file. +* +*/ + +namespace phpbb\db\migration\data\v310; + +class rename_too_long_indexes extends \phpbb\db\migration\migration +{ +	static public function depends_on() +	{ +		return array('\phpbb\db\migration\data\v30x\release_3_0_0'); +	} + +	public function update_schema() +	{ +		return array( +			'drop_keys' => array( +				$this->table_prefix . 'search_wordmatch' => array( +					'unq_mtch', +				), +			), +			'add_unique_index' => array( +				$this->table_prefix . 'search_wordmatch' => array( +					'un_mtch'	=> array('word_id', 'post_id', 'title_match'), +				), +			), +		); +	} +} diff --git a/phpBB/phpbb/db/tools.php b/phpBB/phpbb/db/tools.php index ae0c695aa2..5d93eb8246 100644 --- a/phpBB/phpbb/db/tools.php +++ b/phpBB/phpbb/db/tools.php @@ -2104,7 +2104,7 @@ class tools  		$statements = array();  		$table_prefix = substr(CONFIG_TABLE, 0, -6); // strlen(config) -		if (strlen($table_name . $index_name) - strlen($table_prefix) > 24) +		if (strlen($table_name . '_' . $index_name) - strlen($table_prefix) > 24)  		{  			$max_length = strlen($table_prefix) + 24;  			trigger_error("Index name '{$table_name}_$index_name' on table '$table_name' is too long. The maximum is $max_length characters.", E_USER_ERROR); diff --git a/phpBB/phpbb/extension/metadata_manager.php b/phpBB/phpbb/extension/metadata_manager.php index 1051021ea7..edca8ee1af 100644 --- a/phpBB/phpbb/extension/metadata_manager.php +++ b/phpBB/phpbb/extension/metadata_manager.php @@ -330,27 +330,6 @@ class metadata_manager  	}  	/** -	* Version validation helper -	* -	* @param string $string The string for comparing to a version -	* @param string $current_version The version to compare to -	* @return bool True/False if meets version requirements -	*/ -	private function _validate_version($string, $current_version) -	{ -		// Allow them to specify their own comparison operator (ex: <3.1.2, >=3.1.0) -		$comparison_matches = false; -		preg_match('#[=<>]+#', $string, $comparison_matches); - -		if (!empty($comparison_matches)) -		{ -			return version_compare($current_version, str_replace(array($comparison_matches[0], ' '), '', $string), $comparison_matches[0]); -		} - -		return version_compare($current_version, $string, '>='); -	} - -	/**  	* Outputs the metadata into the template  	*  	* @return null  | 
