diff options
| author | Tristan Darricau <github@nicofuma.fr> | 2014-08-07 16:44:49 +0200 | 
|---|---|---|
| committer | Tristan Darricau <github@nicofuma.fr> | 2014-08-07 16:44:49 +0200 | 
| commit | ab8a197e92c491ac37f8ffe2fff1f7c6c42167b6 (patch) | |
| tree | 550d513947d722a7e294a047175cb1f8f17f012b | |
| parent | 778483d070792dc5a6765de2d839110202b16346 (diff) | |
| parent | 83e5a25c0a03b7b5ee9283201143bf2e6c94758e (diff) | |
| download | forums-ab8a197e92c491ac37f8ffe2fff1f7c6c42167b6.tar forums-ab8a197e92c491ac37f8ffe2fff1f7c6c42167b6.tar.gz forums-ab8a197e92c491ac37f8ffe2fff1f7c6c42167b6.tar.bz2 forums-ab8a197e92c491ac37f8ffe2fff1f7c6c42167b6.tar.xz forums-ab8a197e92c491ac37f8ffe2fff1f7c6c42167b6.zip | |
Merge pull request #2623 from dhruvgoel92/ticket/12738
[ticket/12738] Move related code from functions_posting to function
* dhruvgoel92/ticket/12738:
  [ticket/12738] Update constructor docblock
  [ticket/12738] Add $config to constructor in notification test
  [ticket/12738] Fix tests with new config object injection
  [ticket/12738] Inject config object into content_visibility class
  [ticket/11528] Move related code from functions_posting to function
| -rw-r--r-- | phpBB/config/services.yml | 1 | ||||
| -rw-r--r-- | phpBB/includes/functions_posting.php | 15 | ||||
| -rw-r--r-- | phpBB/phpbb/content_visibility.php | 41 | ||||
| -rw-r--r-- | tests/content_visibility/delete_post_test.php | 5 | ||||
| -rw-r--r-- | tests/content_visibility/get_forums_visibility_sql_test.php | 3 | ||||
| -rw-r--r-- | tests/content_visibility/get_global_visibility_sql_test.php | 3 | ||||
| -rw-r--r-- | tests/content_visibility/get_visibility_sql_test.php | 3 | ||||
| -rw-r--r-- | tests/content_visibility/set_post_visibility_test.php | 6 | ||||
| -rw-r--r-- | tests/content_visibility/set_topic_visibility_test.php | 3 | ||||
| -rw-r--r-- | tests/notification/submit_post_base.php | 2 | 
10 files changed, 49 insertions, 33 deletions
| diff --git a/phpBB/config/services.yml b/phpBB/config/services.yml index b4e387bd73..a9f9f5ed19 100644 --- a/phpBB/config/services.yml +++ b/phpBB/config/services.yml @@ -79,6 +79,7 @@ services:          class: phpbb\content_visibility          arguments:              - @auth +            - @config              - @dbal.conn              - @user              - %core.root_path% diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index f7e33725ec..fb09bc7057 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -1431,20 +1431,7 @@ function delete_post($forum_id, $topic_id, $post_id, &$data, $is_soft = false, $  	{  		if (!$is_soft)  		{ -			if ($data['post_visibility'] == ITEM_APPROVED) -			{ -				$phpbb_content_visibility->remove_post_from_statistic($data, $sql_data); -			} -			else if ($data['post_visibility'] == ITEM_UNAPPROVED || $data['post_visibility'] == ITEM_REAPPROVE) -			{ -				$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'; -			} +			$phpbb_content_visibility->remove_post_from_statistic($data, $sql_data);  		}  		$sql = 'SELECT 1 AS has_attachments 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/tests/content_visibility/delete_post_test.php b/tests/content_visibility/delete_post_test.php index 99068729df..aa705c52a5 100644 --- a/tests/content_visibility/delete_post_test.php +++ b/tests/content_visibility/delete_post_test.php @@ -271,7 +271,8 @@ class phpbb_content_visibility_delete_post_test extends phpbb_database_test_case  		$config['search_type'] = 'phpbb_mock_search';  		$cache = new phpbb_mock_cache;  		$db = $this->new_dbal(); -		set_config_count(null, null, null, new \phpbb\config\config(array('num_posts' => 3, 'num_topics' => 1))); +		$phpbb_config = new \phpbb\config\config(array('num_posts' => 3, 'num_topics' => 1)); +		set_config_count(null, null, null, $phpbb_config);  		// Create auth mock  		$auth = $this->getMock('\phpbb\auth\auth'); @@ -287,7 +288,7 @@ class phpbb_content_visibility_delete_post_test extends phpbb_database_test_case  		$phpbb_container = new phpbb_mock_container_builder();  		$phpbb_container->set('notification_manager', new phpbb_mock_notification_manager()); -		$phpbb_container->set('content.visibility', new \phpbb\content_visibility($auth, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE)); +		$phpbb_container->set('content.visibility', new \phpbb\content_visibility($auth, $phpbb_config, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE));  		delete_post($forum_id, $topic_id, $post_id, $data, $is_soft, $reason); diff --git a/tests/content_visibility/get_forums_visibility_sql_test.php b/tests/content_visibility/get_forums_visibility_sql_test.php index 9fd84d7c04..7e4ce6577d 100644 --- a/tests/content_visibility/get_forums_visibility_sql_test.php +++ b/tests/content_visibility/get_forums_visibility_sql_test.php @@ -135,7 +135,8 @@ class phpbb_content_visibility_get_forums_visibility_sql_test extends phpbb_data  			->with($this->stringContains('_'), $this->anything())  			->will($this->returnValueMap($permissions));  		$user = $this->getMock('\phpbb\user'); -		$content_visibility = new \phpbb\content_visibility($auth, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE); +		$config = new phpbb\config\config(array()); +		$content_visibility = new \phpbb\content_visibility($auth, $config, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE);  		$result = $db->sql_query('SELECT ' . $mode . '_id  			FROM ' . $table . ' diff --git a/tests/content_visibility/get_global_visibility_sql_test.php b/tests/content_visibility/get_global_visibility_sql_test.php index 6397cd6e45..082e0d76ab 100644 --- a/tests/content_visibility/get_global_visibility_sql_test.php +++ b/tests/content_visibility/get_global_visibility_sql_test.php @@ -135,7 +135,8 @@ class phpbb_content_visibility_get_global_visibility_sql_test extends phpbb_data  			->with($this->stringContains('_'), $this->anything())  			->will($this->returnValueMap($permissions));  		$user = $this->getMock('\phpbb\user'); -		$content_visibility = new \phpbb\content_visibility($auth, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE); +		$config = new phpbb\config\config(array()); +		$content_visibility = new \phpbb\content_visibility($auth, $config, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE);  		$result = $db->sql_query('SELECT ' . $mode . '_id  			FROM ' . $table . ' diff --git a/tests/content_visibility/get_visibility_sql_test.php b/tests/content_visibility/get_visibility_sql_test.php index daad901b67..2d4f24f1c6 100644 --- a/tests/content_visibility/get_visibility_sql_test.php +++ b/tests/content_visibility/get_visibility_sql_test.php @@ -82,7 +82,8 @@ class phpbb_content_visibility_get_visibility_sql_test extends phpbb_database_te  			->with($this->stringContains('_'), $this->anything())  			->will($this->returnValueMap($permissions));  		$user = $this->getMock('\phpbb\user'); -		$content_visibility = new \phpbb\content_visibility($auth, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE); +		$config = new phpbb\config\config(array()); +		$content_visibility = new \phpbb\content_visibility($auth, $config, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE);  		$result = $db->sql_query('SELECT ' . $mode . '_id  			FROM ' . $table . ' diff --git a/tests/content_visibility/set_post_visibility_test.php b/tests/content_visibility/set_post_visibility_test.php index abfefaddfa..a596b45714 100644 --- a/tests/content_visibility/set_post_visibility_test.php +++ b/tests/content_visibility/set_post_visibility_test.php @@ -125,7 +125,8 @@ class phpbb_content_visibility_set_post_visibility_test extends phpbb_database_t  		$db = $this->new_dbal();  		$auth = $this->getMock('\phpbb\auth\auth');  		$user = $this->getMock('\phpbb\user'); -		$content_visibility = new \phpbb\content_visibility($auth, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE); +		$config = new phpbb\config\config(array()); +		$content_visibility = new \phpbb\content_visibility($auth, $config, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE);  		$content_visibility->set_post_visibility($visibility, $post_id, $topic_id, $forum_id, $user_id, $time, $reason, $is_starter, $is_latest); @@ -174,7 +175,8 @@ class phpbb_content_visibility_set_post_visibility_test extends phpbb_database_t  		$db = $this->new_dbal();  		$auth = $this->getMock('\phpbb\auth\auth');  		$user = $this->getMock('\phpbb\user'); -		$content_visibility = new \phpbb\content_visibility($auth, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE); +		$config = new phpbb\config\config(array()); +		$content_visibility = new \phpbb\content_visibility($auth, $config, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE);  		$content_visibility->set_post_visibility(ITEM_DELETED, $post_id, $topic_id, $forum_id, $user_id, $time, $reason, $is_starter, $is_latest); diff --git a/tests/content_visibility/set_topic_visibility_test.php b/tests/content_visibility/set_topic_visibility_test.php index 6437c61436..230474428c 100644 --- a/tests/content_visibility/set_topic_visibility_test.php +++ b/tests/content_visibility/set_topic_visibility_test.php @@ -89,7 +89,8 @@ class phpbb_content_visibility_set_topic_visibility_test extends phpbb_database_  		$db = $this->new_dbal();  		$auth = $this->getMock('\phpbb\auth\auth');  		$user = $this->getMock('\phpbb\user'); -		$content_visibility = new \phpbb\content_visibility($auth, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE); +		$config = new phpbb\config\config(array()); +		$content_visibility = new \phpbb\content_visibility($auth, $config, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE);  		$content_visibility->set_topic_visibility($visibility, $topic_id, $forum_id, $user_id, $time, $reason, $force_update_all); diff --git a/tests/notification/submit_post_base.php b/tests/notification/submit_post_base.php index c22c4c5ad2..bd926e2a98 100644 --- a/tests/notification/submit_post_base.php +++ b/tests/notification/submit_post_base.php @@ -100,7 +100,7 @@ abstract class phpbb_notification_submit_post_base extends phpbb_database_test_c  		// Container  		$phpbb_container = new phpbb_mock_container_builder(); -		$phpbb_container->set('content.visibility', new \phpbb\content_visibility($auth, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE)); +		$phpbb_container->set('content.visibility', new \phpbb\content_visibility($auth, $config, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE));  		$user_loader = new \phpbb\user_loader($db, $phpbb_root_path, $phpEx, USERS_TABLE); | 
