aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/textformatter/renderer.php
blob: 1b0a36715f4814c4232ecfcaf62e7fe2f9f4f54a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
<?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\textformatter;

abstract class renderer
{
	/**
	* Render given text
	*
	* @param  string $text Text, as parsed by something that implements \phpbb\textformatter\parser
	* @return string
	*/
	abstract public function render($text);

	/**
	* Automatically set the smilies path based on config
	*
	* Called by the service container
	*
	* @param  phpbb\config\config $config
	* @param  phpbb\path_helper   $path_helper
	* @return null
	*/
	public function configure_smilies_path(\phpbb\config\config $config, \phpbb\path_helper $path_helper)
	{
		/**
		* @see smiley_text()
		*/
		$root_path = (defined('PHPBB_USE_BOARD_URL_PATH') && PHPBB_USE_BOARD_URL_PATH) ? generate_board_url() . '/' : $path_helper->get_web_root_path();

		$this->set_smilies_path($root_path . $config['smilies_path']);
	}

	/**
	* Configure this renderer as per the user's settings
	*
	* Should set the locale as well as the viewcensor/viewflash/viewimg/viewsmilies options.
	* Called by the service container
	*
	* @param  phpbb\user          $user
	* @param  phpbb\config\config $config
	* @param  phpbb\auth\auth     $auth
	* @return null
	*/
	public function configure_user(\phpbb\user $user, \phpbb\config\config $config, \phpbb\auth\auth $auth)
	{
		$censor =  $user->optionget('viewcensors') || !$config['allow_nocensors'] || !$auth->acl_get('u_chgcensors');

		$this->set_viewcensors($censor);
		$this->set_viewflash($user->optionget('viewflash'));
		$this->set_viewimg($user->optionget('viewimg'));
		$this->set_viewsmilies($user->optionget('viewsmilies'));
	}

	/**
	* Set the smilies' path
	*
	* @return null
	*/
	abstract public function set_smilies_path($path);

	/**
	* Return the value of the "viewcensors" option
	*
	* @return bool Option's value
	*/
	abstract public function get_viewcensors();

	/**
	* Return the value of the "viewflash" option
	*
	* @return bool Option's value
	*/
	abstract public function get_viewflash();

	/**
	* Return the value of the "viewimg" option
	*
	* @return bool Option's value
	*/
	abstract public function get_viewimg();

	/**
	* Return the value of the "viewsmilies" option
	*
	* @return bool Option's value
	*/
	abstract public function get_viewsmilies();

	/**
	* Set the "viewcensors" option
	*
	* @param  bool $value Option's value
	* @return null
	*/
	abstract public function set_viewcensors($value);

	/**
	* Set the "viewflash" option
	*
	* @param  bool $value Option's value
	* @return null
	*/
	abstract public function set_viewflash($value);

	/**
	* Set the "viewimg" option
	*
	* @param  bool $value Option's value
	* @return null
	*/
	abstract public function set_viewimg($value);

	/**
	* Set the "viewsmilies" option
	*
	* @param  bool $value Option's value
	* @return null
	*/
	abstract public function set_viewsmilies($value);
}