Completed
Push — master ( f9651b...451a88 )
by Matt
30s queued 13s
created

manager::run()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 14
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 11
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 14
ccs 11
cts 11
cp 1
rs 9.4285
c 0
b 0
f 0
cc 3
eloc 7
nc 3
nop 1
crap 3
1
<?php
2
/**
3
 *
4
 * Advertisement management. An extension for the phpBB Forum Software package.
5
 *
6
 * @copyright (c) 2017 phpBB Limited <https://www.phpbb.com>
7
 * @license GNU General Public License, version 2 (GPL-2.0)
8
 *
9
 */
10
11
namespace phpbb\ads\analyser;
12
13
class manager
14
{
15
	/** @var array Ad code analysis tests */
16
	protected $tests;
17
18
	/** @var \phpbb\request\request */
19
	protected $request;
20
21
	/** @var \phpbb\template\template */
22
	protected $template;
23
24
	/** @var \phpbb\language\language */
25
	protected $lang;
26
27
	/**
28
	 * Construct an ad code analysis manager object
29
	 *
30
	 * @param	array						$tests		Ad code analysis tests passed via the service container
31
	 * @param	\phpbb\request\request		$request	Request object
32
	 * @param	\phpbb\template\template	$template	Template object
33
	 * @param	\phpbb\language\language	$lang		Language object
34
	 */
35 13
	public function __construct($tests, \phpbb\request\request $request, \phpbb\template\template $template, \phpbb\language\language $lang)
36
	{
37 13
		$this->tests = $tests;
38 13
		$this->request = $request;
39 13
		$this->template = $template;
40 13
		$this->lang = $lang;
41 13
	}
42
43
	/**
44
	 * Test the ad code for potential problems.
45
	 *
46
	 * @param	string	$ad_code	Advertisement code
47
	 */
48 13
	public function run($ad_code)
49
	{
50 13
		$results = array();
51 13
		foreach ($this->tests as $test)
52
		{
53 13
			$result = $test->run($ad_code);
54 13
			if ($result !== false)
55 13
			{
56 10
				$results[] = $result;
57 10
			}
58 13
		}
59
60 13
		$this->assign_template_vars($results);
61 13
	}
62
63
	/**
64
	 * Assign analyser results to template variables.
65
	 *
66
	 * @param	array	$results	Analyser results
67
	 */
68 13
	protected function assign_template_vars($results)
69
	{
70 13
		foreach ($results as $result)
71
		{
72 10
			$this->template->assign_block_vars('analyser_results_' . $result['severity'], array(
73 10
				'MESSAGE'	=> $this->lang->lang($result['message']),
74 10
			));
75 13
		}
76
77 13
		$this->template->assign_var('CODE_ANALYSED', true);
78 13
	}
79
}
80