Passed
Push — master ( 8b87a6...c0ecbe )
by Tobias
04:08 queued 01:53
created
tests/functional/phpbb_functional_test.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -5,16 +5,16 @@
 block discarded – undo
5 5
  */
6 6
 class phpbb_functional_test extends \tas2580\seourls\tests\base\functional_test
7 7
 {
8
-	public function test_version_check()
9
-	{
10
-		// Log in to the ACP
11
-		$this->login();
12
-		$this->admin_login();
13
-		$this->add_lang('acp/extensions');
14
-		// Load the Pages extension details
15
-		$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=details&ext_name=tas2580%2Fseourls&sid=' . $this->sid);
16
-		// Assert extension is up to date
17
-		$this->assertGreaterThan(0, $crawler->filter('.successbox')->count());
18
-		$this->assertContains($this->lang('UP_TO_DATE', 'SEO URLs'), $crawler->text());
19
-	}
8
+    public function test_version_check()
9
+    {
10
+        // Log in to the ACP
11
+        $this->login();
12
+        $this->admin_login();
13
+        $this->add_lang('acp/extensions');
14
+        // Load the Pages extension details
15
+        $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&action=details&ext_name=tas2580%2Fseourls&sid=' . $this->sid);
16
+        // Assert extension is up to date
17
+        $this->assertGreaterThan(0, $crawler->filter('.successbox')->count());
18
+        $this->assertContains($this->lang('UP_TO_DATE', 'SEO URLs'), $crawler->text());
19
+    }
20 20
 }
Please login to merge, or discard this patch.
event/extensions.php 1 patch
Indentation   +117 added lines, -117 removed lines patch added patch discarded remove patch
@@ -16,133 +16,133 @@
 block discarded – undo
16 16
  */
17 17
 class extensions implements EventSubscriberInterface
18 18
 {
19
-	/** @var \tas2580\seourls\event\base */
20
-	protected $base;
19
+    /** @var \tas2580\seourls\event\base */
20
+    protected $base;
21 21
 
22
-	/**
23
-	 * Constructor
24
-	 *
25
-	 * @param \tas2580\seourls\event\base		$base
26
-	 * @access public
27
-	 */
28
-	public function __construct(\tas2580\seourls\event\base $base)
29
-	{
30
-		$this->base = $base;
31
-	}
22
+    /**
23
+     * Constructor
24
+     *
25
+     * @param \tas2580\seourls\event\base		$base
26
+     * @access public
27
+     */
28
+    public function __construct(\tas2580\seourls\event\base $base)
29
+    {
30
+        $this->base = $base;
31
+    }
32 32
 
33
-	/**
34
-	 * Assign functions defined in this class to event listeners in the core
35
-	 *
36
-	 * @return array
37
-	 * @static
38
-	 * @access public
39
-	 */
40
-	public static function getSubscribedEvents()
41
-	{
42
-		return array(
43
-			'rmcgirr83.topfive.sql_pull_topics_data'	=> 'topfive_sql_pull_topics_data',
44
-			'rmcgirr83.topfive.modify_tpl_ary'			=> 'topfive_modify_tpl_ary',
45
-			'tas2580.sitemap.modify_before_output'		=> 'sitemap_modify_before_output',
46
-			'vse.similartopics.modify_topicrow'			=> 'similartopics_modify_topicrow',
47
-			'paybas.recenttopics.modify_tpl_ary'		=> 'recenttopics_modify_tpl_ary'
48
-		);
49
-	}
33
+    /**
34
+     * Assign functions defined in this class to event listeners in the core
35
+     *
36
+     * @return array
37
+     * @static
38
+     * @access public
39
+     */
40
+    public static function getSubscribedEvents()
41
+    {
42
+        return array(
43
+            'rmcgirr83.topfive.sql_pull_topics_data'	=> 'topfive_sql_pull_topics_data',
44
+            'rmcgirr83.topfive.modify_tpl_ary'			=> 'topfive_modify_tpl_ary',
45
+            'tas2580.sitemap.modify_before_output'		=> 'sitemap_modify_before_output',
46
+            'vse.similartopics.modify_topicrow'			=> 'similartopics_modify_topicrow',
47
+            'paybas.recenttopics.modify_tpl_ary'		=> 'recenttopics_modify_tpl_ary'
48
+        );
49
+    }
50 50
 
51
-	public function recenttopics_modify_tpl_ary($event)
52
-	{
53
-		$tpl_ary = $event['tpl_ary'];
54
-		$u_view_topic = $this->base->generate_topic_link($event['row']['forum_id'], $event['row']['forum_name'], $event['row']['topic_id'], $event['row']['topic_title']);
55
-		$tpl_ary['U_VIEW_TOPIC'] = append_sid($u_view_topic);
56
-		$tpl_ary['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($tpl_ary['REPLIES'], $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
57
-		$tpl_ary['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($event['row']['forum_id'], $event['row']['forum_name']));
58
-		$tpl_ary['U_NEWEST_POST'] = $u_view_topic . '?view=unread#unread';
51
+    public function recenttopics_modify_tpl_ary($event)
52
+    {
53
+        $tpl_ary = $event['tpl_ary'];
54
+        $u_view_topic = $this->base->generate_topic_link($event['row']['forum_id'], $event['row']['forum_name'], $event['row']['topic_id'], $event['row']['topic_title']);
55
+        $tpl_ary['U_VIEW_TOPIC'] = append_sid($u_view_topic);
56
+        $tpl_ary['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($tpl_ary['REPLIES'], $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
57
+        $tpl_ary['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($event['row']['forum_id'], $event['row']['forum_name']));
58
+        $tpl_ary['U_NEWEST_POST'] = $u_view_topic . '?view=unread#unread';
59 59
 
60
-		$event['tpl_ary'] = $tpl_ary;
61
-	}
60
+        $event['tpl_ary'] = $tpl_ary;
61
+    }
62 62
 
63
-	/**
64
-	 * Rewrite URLs in tas2580 Sitemap Extension
65
-	 *
66
-	 * @param	object	$event	The event object
67
-	 * @return	null
68
-	 * @access	public
69
-	 */
70
-	public function sitemap_modify_before_output($event)
71
-	{
72
-		// Nothing to rewrite in the sitemap index
73
-		if ($event['type'] == 'sitemapindex')
74
-		{
75
-			return;
76
-		}
63
+    /**
64
+     * Rewrite URLs in tas2580 Sitemap Extension
65
+     *
66
+     * @param	object	$event	The event object
67
+     * @return	null
68
+     * @access	public
69
+     */
70
+    public function sitemap_modify_before_output($event)
71
+    {
72
+        // Nothing to rewrite in the sitemap index
73
+        if ($event['type'] == 'sitemapindex')
74
+        {
75
+            return;
76
+        }
77 77
 
78
-		$url_data =$event['url_data'] ;
78
+        $url_data =$event['url_data'] ;
79 79
 
80
-		foreach ($url_data as $id => $data)
81
-		{
82
-			$row = $data['row'];
83
-			if (isset($row['topic_id']))
84
-			{
85
-				$url_data[$id]['url'] = $this->base->generate_topic_link($row['forum_id'], $row['forum_name'], $row['topic_id'], $row['topic_title'],  $data['start'], true);
86
-			}
87
-			else if (isset($row['forum_id']))
88
-			{
89
-				$url_data[$id]['url'] = $this->base->generate_forum_link($row['forum_id'], $row['forum_name'], $data['start'], true);
90
-			}
91
-		}
80
+        foreach ($url_data as $id => $data)
81
+        {
82
+            $row = $data['row'];
83
+            if (isset($row['topic_id']))
84
+            {
85
+                $url_data[$id]['url'] = $this->base->generate_topic_link($row['forum_id'], $row['forum_name'], $row['topic_id'], $row['topic_title'],  $data['start'], true);
86
+            }
87
+            else if (isset($row['forum_id']))
88
+            {
89
+                $url_data[$id]['url'] = $this->base->generate_forum_link($row['forum_id'], $row['forum_name'], $data['start'], true);
90
+            }
91
+        }
92 92
 
93
-		$event['url_data'] = $url_data;
94
-	}
93
+        $event['url_data'] = $url_data;
94
+    }
95 95
 
96
-	/**
97
-	 * Rewrite URLs in Similar Topics Extension
98
-	 *
99
-	 * @param	object	$event	The event object
100
-	 * @return	null
101
-	 * @access	public
102
-	 */
103
-	public function similartopics_modify_topicrow($event)
104
-	{
105
-		$this->forum_title = $event['row']['forum_name'];
106
-		$this->forum_id = $event['row']['forum_id'];
107
-		$this->topic_title = $event['row']['topic_title'];
108
-		$this->topic_id = $event['row']['topic_id'];
96
+    /**
97
+     * Rewrite URLs in Similar Topics Extension
98
+     *
99
+     * @param	object	$event	The event object
100
+     * @return	null
101
+     * @access	public
102
+     */
103
+    public function similartopics_modify_topicrow($event)
104
+    {
105
+        $this->forum_title = $event['row']['forum_name'];
106
+        $this->forum_id = $event['row']['forum_id'];
107
+        $this->topic_title = $event['row']['topic_title'];
108
+        $this->topic_id = $event['row']['topic_id'];
109 109
 
110
-		$topic_row = $event['topic_row'];
111
-		$u_view_topic= $this->base->generate_topic_link($this->forum_id, $this->forum_title, $this->topic_id, $this->topic_title);
112
-		$topic_row['U_VIEW_TOPIC'] = append_sid($u_view_topic);
113
-		$topic_row['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($this->forum_id, $this->forum_title));
114
-		$topic_row['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($topic_row['TOPIC_REPLIES'], $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
115
-		$event['topic_row'] = $topic_row;
116
-	}
110
+        $topic_row = $event['topic_row'];
111
+        $u_view_topic= $this->base->generate_topic_link($this->forum_id, $this->forum_title, $this->topic_id, $this->topic_title);
112
+        $topic_row['U_VIEW_TOPIC'] = append_sid($u_view_topic);
113
+        $topic_row['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($this->forum_id, $this->forum_title));
114
+        $topic_row['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($topic_row['TOPIC_REPLIES'], $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
115
+        $event['topic_row'] = $topic_row;
116
+    }
117 117
 
118
-	/**
119
-	 * Rewrite URLs in Top 5 Extension
120
-	 *
121
-	 * @param	object	$event	The event object
122
-	 * @return	null
123
-	 * @access	public
124
-	 */
125
-	public function topfive_sql_pull_topics_data($event)
126
-	{
127
-		$sql_array = $event['sql_array'];
128
-		$sql_array['SELECT'] = array_merge($sql_array, array('SELECT' => 'f.forum_name'));
129
-		$sql_array['LEFT_JOIN'] = array_merge($sql_array['LEFT_JOIN'], array('FROM' => array(FORUMS_TABLE => 'f'), 'ON' => 'f.forum_id = t.forum_id'));
130
-		$event['sql_array'] = $sql_array;
131
-	}
118
+    /**
119
+     * Rewrite URLs in Top 5 Extension
120
+     *
121
+     * @param	object	$event	The event object
122
+     * @return	null
123
+     * @access	public
124
+     */
125
+    public function topfive_sql_pull_topics_data($event)
126
+    {
127
+        $sql_array = $event['sql_array'];
128
+        $sql_array['SELECT'] = array_merge($sql_array, array('SELECT' => 'f.forum_name'));
129
+        $sql_array['LEFT_JOIN'] = array_merge($sql_array['LEFT_JOIN'], array('FROM' => array(FORUMS_TABLE => 'f'), 'ON' => 'f.forum_id = t.forum_id'));
130
+        $event['sql_array'] = $sql_array;
131
+    }
132 132
 
133
-	/**
134
-	 * Rewrite URLs in Top 5 Extension
135
-	 *
136
-	 * @param	object	$event	The event object
137
-	 * @return	null
138
-	 * @access	public
139
-	 */
140
-	public function topfive_modify_tpl_ary($event)
141
-	{
142
-		$tpl_ary = $event['tpl_ary'];
143
-		$replies = $this->base->get_count('topic_posts', $event['row'], $event['row']['forum_id']) - 1;
144
-		$u_view_topic = $this->base->generate_topic_link($event['row']['forum_id'], $event['row']['forum_name'], $event['row']['topic_id'], $event['row']['topic_title']);
145
-		$tpl_ary['U_TOPIC'] = append_sid($this->base->generate_lastpost_link($replies, $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
146
-		$event['tpl_ary'] = $tpl_ary;
147
-	}
133
+    /**
134
+     * Rewrite URLs in Top 5 Extension
135
+     *
136
+     * @param	object	$event	The event object
137
+     * @return	null
138
+     * @access	public
139
+     */
140
+    public function topfive_modify_tpl_ary($event)
141
+    {
142
+        $tpl_ary = $event['tpl_ary'];
143
+        $replies = $this->base->get_count('topic_posts', $event['row'], $event['row']['forum_id']) - 1;
144
+        $u_view_topic = $this->base->generate_topic_link($event['row']['forum_id'], $event['row']['forum_name'], $event['row']['topic_id'], $event['row']['topic_title']);
145
+        $tpl_ary['U_TOPIC'] = append_sid($this->base->generate_lastpost_link($replies, $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
146
+        $event['tpl_ary'] = $tpl_ary;
147
+    }
148 148
 }
Please login to merge, or discard this patch.
event/listener.php 1 patch
Indentation   +406 added lines, -406 removed lines patch added patch discarded remove patch
@@ -16,410 +16,410 @@
 block discarded – undo
16 16
  */
17 17
 class listener implements EventSubscriberInterface
18 18
 {
19
-	/** @var \tas2580\seourls\event\base */
20
-	protected $base;
21
-
22
-	/** @var \phpbb\template\template */
23
-	protected $template;
24
-
25
-	/** @var \phpbb\request\request */
26
-	protected $request;
27
-
28
-	/** @var \phpbb\path_helper */
29
-	protected $path_helper;
30
-
31
-	/** @var string phpbb_root_path */
32
-	protected $phpbb_root_path;
33
-
34
-	/** @var string php_ext */
35
-	protected $php_ext;
36
-
37
-	private $in_viewforum;
38
-
39
-	/**
40
-	 * Constructor
41
-	 *
42
-	 * @param \tas2580\seourls\event\base	$base
43
-	 * @param \phpbb\template\template		$template				Template object
44
-	 * @param \phpbb\request\request		$request				Request object
45
-	 * @param \phpbb\path_helper			$path_helper			Controller helper object
46
-	 * @param string						$phpbb_root_path		phpbb_root_path
47
-	 * @param string						$php_ext				php_ext
48
-	 * @access public
49
-	 */
50
-	public function __construct(\tas2580\seourls\event\base $base, \phpbb\template\template $template, \phpbb\request\request $request, \phpbb\path_helper $path_helper, $phpbb_root_path, $php_ext)
51
-	{
52
-		$this->base = $base;
53
-		$this->template = $template;
54
-		$this->request = $request;
55
-		$this->path_helper = $path_helper;
56
-		$this->phpbb_root_path = $phpbb_root_path;
57
-		$this->php_ext = $php_ext;
58
-
59
-		$this->in_viewtopic = false;
60
-	}
61
-
62
-	/**
63
-	 * Assign functions defined in this class to event listeners in the core
64
-	 *
65
-	 * @return array
66
-	 * @static
67
-	 * @access public
68
-	 */
69
-	public static function getSubscribedEvents()
70
-	{
71
-		return array(
72
-			'core.append_sid'										=> 'append_sid',
73
-			'core.display_forums_modify_sql'						=> 'display_forums_modify_sql',
74
-			'core.display_forums_modify_template_vars'				=> 'display_forums_modify_template_vars',
75
-			'core.display_forums_modify_forum_rows'					=> 'display_forums_modify_forum_rows',
76
-			'core.display_forums_modify_category_template_vars'		=> 'display_forums_modify_category_template_vars',
77
-			'core.generate_forum_nav'								=> 'generate_forum_nav',
78
-			'core.make_jumpbox_modify_tpl_ary'						=> 'make_jumpbox_modify_tpl_ary',				// Not in phpBB
79
-			'core.memberlist_view_profile'							=> 'memberlist_view_profile',
80
-			'core.pagination_generate_page_link'					=> 'pagination_generate_page_link',
81
-			'core.search_modify_tpl_ary'							=> 'search_modify_tpl_ary',
82
-			'core.viewforum_modify_topicrow'						=> 'viewforum_modify_topicrow',
83
-			'core.viewforum_get_topic_data'							=> 'viewforum_get_topic_data',
84
-			'core.viewtopic_assign_template_vars_before'			=> 'viewtopic_assign_template_vars_before',
85
-			'core.viewtopic_before_f_read_check'					=> 'viewtopic_before_f_read_check',
86
-			'core.viewtopic_modify_page_title'						=> 'viewtopic_modify_page_title',
87
-			'core.viewtopic_modify_post_row'						=> 'viewtopic_modify_post_row',
88
-			'core.viewtopic_get_post_data'							=> 'viewtopic_get_post_data',
89
-		);
90
-	}
91
-
92
-	/**
93
-	 * Correct the path of $viewtopic_url
94
-	 *
95
-	 * @param	object	$event	The event object
96
-	 * @return	null
97
-	 * @access	public
98
-	 */
99
-	public function append_sid($event)
100
-	{
101
-		if ($this->in_viewtopic && preg_match('#./../viewtopic.' . $this->php_ext  . '#', $event['url']))
102
-		{
103
-			$url = '../viewtopic.' . $this->php_ext ;
104
-			$event['url'] = $url;
105
-		}
106
-		if (isset($event['params']['redirect']))
107
-		{
108
-			$params = $event['params'];
109
-			$params['redirect'] = str_replace('..', '.', $event['params']['redirect']);
110
-			$event['params'] = $params;
111
-		}
112
-	}
113
-
114
-	/**
115
-	 * Get informations for the last post from Database
116
-	 *
117
-	 * @param	object	$event	The event object
118
-	 * @return	null
119
-	 * @access	public
120
-	 */
121
-	public function display_forums_modify_sql($event)
122
-	{
123
-		$sql_array = $event['sql_ary'];
124
-		$sql_array['LEFT_JOIN'][] = array(
125
-			'FROM' => array(TOPICS_TABLE => 't'),
126
-			'ON' => "f.forum_last_post_id = t.topic_last_post_id"
127
-		);
128
-		$sql_array['SELECT'] .= ', t.topic_title, t.topic_id, t.topic_posts_approved, t.topic_posts_unapproved, t.topic_posts_softdeleted';
129
-		$event['sql_ary'] = $sql_array;
130
-	}
131
-
132
-	/**
133
-	 * Store informations for the last post in forum_rows array
134
-	 *
135
-	 * @param	object	$event	The event object
136
-	 * @return	null
137
-	 * @access	public
138
-	 */
139
-	public function display_forums_modify_forum_rows($event)
140
-	{
141
-		$forum_rows = $event['forum_rows'];
142
-		if ($event['row']['forum_last_post_time'] == $forum_rows[$event['parent_id']]['forum_last_post_time'])
143
-		{
144
-			$forum_rows[$event['parent_id']]['forum_name_last_post'] =$event['row']['forum_name'];
145
-			$forum_rows[$event['parent_id']]['topic_id_last_post'] =$event['row']['topic_id'];
146
-			$forum_rows[$event['parent_id']]['topic_title_last_post'] =$event['row']['topic_title'];
147
-			$event['forum_rows'] = $forum_rows;
148
-		}
149
-	}
150
-
151
-	/**
152
-	 * Rewrite links to forums and subforums in forum index
153
-	 * also correct the path of the forum images if we are in a forum
154
-	 *
155
-	 * @param	object	$event	The event object
156
-	 * @return	null
157
-	 * @access	public
158
-	 */
159
-	public function display_forums_modify_template_vars($event)
160
-	{
161
-		$subforums_row = $event['subforums_row'];
162
-		$forum_row = $event['forum_row'];
163
-
164
-		// Rewrite URLs of sub forums
165
-		foreach ($subforums_row as $i => $subforum)
166
-		{
167
-			// A little bit a dirty way, but there is no better solution
168
-			$query = str_replace('&', '&', parse_url($subforum['U_SUBFORUM'], PHP_URL_QUERY));
169
-			parse_str($query, $id);
170
-			$subforums_row[$i]['U_SUBFORUM'] = append_sid($this->base->generate_forum_link($id['f'], $subforum['SUBFORUM_NAME']));
171
-		}
172
-
173
-		// Update the image source in forums
174
-		$img = $this->path_helper->update_web_root_path($forum_row['FORUM_IMAGE_SRC']);
175
-		$forum_row['FORUM_IMAGE'] = preg_replace('#img src=\"(.*)\" alt#', 'img src="' . $img . '" alt', $forum_row['FORUM_IMAGE']);
176
-
177
-		// Rewrite links to topics, posts and forums
178
-		$replies = $this->base->get_count('topic_posts', $event['row'], $event['row']['forum_id']) - 1;
179
-		$url = $this->base->generate_topic_link($event['row']['forum_id_last_post'], $event['row']['forum_name_last_post'], $event['row']['topic_id_last_post'], $event['row']['topic_title_last_post']);
180
-		$forum_row['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($replies, $url) . '#p' . $event['row']['forum_last_post_id']);
181
-		$forum_row['U_VIEWFORUM'] = append_sid($this->base->generate_forum_link($forum_row['FORUM_ID'], $forum_row['FORUM_NAME']));
182
-		$forum_row['U_NEWEST_POST'] = $url . '?view=unread#unread';
183
-
184
-		$event['subforums_row'] = $subforums_row;
185
-		$event['forum_row'] = $forum_row;
186
-	}
187
-
188
-	/**
189
-	 * Rewrite the categorie links
190
-	 *
191
-	 * @param	object	$event	The event object
192
-	 * @return	null
193
-	 * @access	public
194
-	 */
195
-	public function display_forums_modify_category_template_vars($event)
196
-	{
197
-		$cat_row = $event['cat_row'];
198
-		$row = $event['row'];
199
-		$cat_row['U_VIEWFORUM'] = append_sid($this->base->generate_forum_link($row['forum_id'], $row['forum_name']));
200
-		$event['cat_row'] = $cat_row;
201
-	}
202
-
203
-	/**
204
-	 * Rewrite links in breadcrumbs
205
-	 *
206
-	 * @param	object	$event	The event object
207
-	 * @return	null
208
-	 * @access	public
209
-	 */
210
-	public function generate_forum_nav($event)
211
-	{
212
-		$forum_data = $event['forum_data'];
213
-		$navlinks = $event['navlinks'];
214
-		$navlinks_parents = $event['navlinks_parents'];
215
-
216
-		foreach ($navlinks_parents as $id => $data)
217
-		{
218
-			$navlinks_parents[$id]['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($data['FORUM_ID'] , $data['FORUM_NAME']));
219
-		}
220
-
221
-		$navlinks['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($forum_data['forum_id'], $forum_data['forum_name']));
222
-		$event['navlinks'] = $navlinks;
223
-		$event['navlinks_parents'] = $navlinks_parents;
224
-	}
225
-
226
-	// Not in phpBB
227
-	public function make_jumpbox_modify_tpl_ary($event)
228
-	{
229
-		$tpl_ary = $event['tpl_ary'];
230
-		$row = $event['row'];
231
-		foreach ($tpl_ary as $id => $data)
232
-		{
233
-			$tpl_ary[$id]['LINK']	 = append_sid($this->base->generate_forum_link($row['forum_id'], $row['forum_name']));
234
-		}
235
-
236
-		$event['tpl_ary'] = $tpl_ary;
237
-	}
238
-
239
-	/**
240
-	 * Rewrite links to most active forum and topic on profile page
241
-	 *
242
-	 * @param	object	$event	The event object
243
-	 * @return	null
244
-	 * @access	public
245
-	 */
246
-	public function memberlist_view_profile($event)
247
-	{
248
-		$data = $event['member'];
249
-		$this->template->assign_vars(array(
250
-			'U_ACTIVE_FORUM' => $this->base->generate_forum_link($data['active_f_row']['forum_id'], $data['active_f_row']['forum_name'], 0, true),
251
-			'U_ACTIVE_TOPIC' => $this->base->generate_topic_link($data['active_f_row']['forum_id'], $data['active_f_row']['forum_name'], $data['active_t_row']['topic_id'], $data['active_t_row']['topic_title'], 0, true),
252
-		));
253
-	}
254
-
255
-	/**
256
-	 * Rewrite pagination links
257
-	 *
258
-	 * @param	object	$event	The event object
259
-	 * @return	null
260
-	 * @access	public
261
-	 */
262
-	public function pagination_generate_page_link($event)
263
-	{
264
-		// If we have a sort key we do not rewrite the URL
265
-		$query = str_replace('&', '&', parse_url($event['base_url'], PHP_URL_QUERY));
266
-		parse_str($query, $param);
267
-		if (isset($param['sd']) || isset($param['sk']) || isset($param['st']))
268
-		{
269
-			return;
270
-		}
271
-
272
-		$start = (($event['on_page'] - 1) * $event['per_page']);
273
-		if (!empty($this->topic_data) && isset($param['f']) && isset($param['t']))
274
-		{
275
-			$event['generate_page_link_override'] = append_sid($this->base->generate_topic_link($this->topic_data['forum_id'], $this->topic_data['forum_name'], $this->topic_data['topic_id'], $this->topic_data['topic_title'], $start));
276
-		}
277
-		else if (!empty($this->forum_data) && isset($param['f']))
278
-		{
279
-			$event['generate_page_link_override'] = append_sid($this->base->generate_forum_link($this->forum_data['forum_id'], $this->forum_data['forum_name'], $start));
280
-		}
281
-	}
282
-
283
-	/**
284
-	 * Rewrite links in the search result
285
-	 *
286
-	 * @param	object	$event	The event object
287
-	 * @return	null
288
-	 * @access	public
289
-	 */
290
-	public function search_modify_tpl_ary($event)
291
-	{
292
-		$replies = $this->base->get_count('topic_posts', $event['row'], $event['row']['forum_id']) - 1;
293
-		$u_view_topic = $this->base->generate_topic_link($event['row']['forum_id'], $event['row']['forum_name'], $event['row']['topic_id'], $event['row']['topic_title']);
294
-
295
-		$tpl_ary = $event['tpl_ary'];
296
-		$tpl_ary['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($replies, $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
297
-		$tpl_ary['U_VIEW_TOPIC'] = append_sid($u_view_topic);
298
-		$tpl_ary['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($event['row']['forum_id'], $event['row']['forum_name']));
299
-		$tpl_ary['U_NEWEST_POST'] = $u_view_topic . '?view=unread#unread';
300
-
301
-		$event['tpl_ary'] = $tpl_ary;
302
-	}
303
-
304
-	/**
305
-	 * Rewrite links to topics in forum view
306
-	 *
307
-	 * @param	object	$event	The event object
308
-	 * @return	null
309
-	 * @access	public
310
-	 */
311
-	public function viewforum_modify_topicrow($event)
312
-	{
313
-		// assign to be used in pagination_generate_page_link
314
-		$this->topic_data = array(
315
-			'forum_id' => $event['topic_row']['FORUM_ID'],
316
-			'forum_name' => $event['topic_row']['FORUM_NAME'],
317
-			'topic_id' => $event['topic_row']['TOPIC_ID'],
318
-			'topic_title' => $event['topic_row']['TOPIC_TITLE']
319
-		);
320
-
321
-		$topic_row = $event['topic_row'];
322
-
323
-		$u_view_topic = $this->base->generate_topic_link($topic_row['FORUM_ID'], $topic_row['FORUM_NAME'], $topic_row['TOPIC_ID'], $topic_row['TOPIC_TITLE']);
324
-		$topic_row['U_VIEW_TOPIC'] = append_sid($u_view_topic);
325
-		$topic_row['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($topic_row['FORUM_ID'], $topic_row['FORUM_NAME']));
326
-		$topic_row['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($event['topic_row']['REPLIES'], $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
327
-		$topic_row['U_NEWEST_POST'] = $u_view_topic . '?view=unread#unread';
328
-
329
-		$event['topic_row'] = $topic_row;
330
-	}
331
-
332
-	/**
333
-	 * Rewrite the canonical URL on viewforum.php
334
-	 *
335
-	 * @param	object	$event	The event object
336
-	 * @return	null
337
-	 * @access	public
338
-	 */
339
-	public function viewforum_get_topic_data($event)
340
-	{
341
-		// assign to be used in pagination_generate_page_link
342
-		$this->forum_data = array(
343
-			'forum_id' => $event['forum_data']['forum_id'],
344
-			'forum_name' => $event['forum_data']['forum_name']
345
-		);
346
-
347
-		$start = $this->request->variable('start', 0);
348
-		$this->template->assign_vars(array(
349
-			'U_VIEW_FORUM'		=> append_sid($this->base->generate_forum_link($event['forum_data']['forum_id'], $event['forum_data']['forum_name'], $start)),
350
-			'U_CANONICAL'		=> $this->base->generate_forum_link($event['forum_data']['forum_id'], $event['forum_data']['forum_name'], $start, true),
351
-		));
352
-	}
353
-
354
-	/**
355
-	 * Rewrite the topic URL for the headline of the topic page and the link back to forum
356
-	 *
357
-	 * @param	object	$event	The event object
358
-	 * @return	null
359
-	 * @access	public
360
-	 */
361
-	public function viewtopic_get_post_data($event)
362
-	{
363
-		$data = $event['topic_data'];
364
-		$this->template->assign_vars(array(
365
-			'U_VIEW_TOPIC'		=> append_sid($this->base->generate_topic_link($event['forum_id'] , $data['forum_name'], $event['topic_id'], $data['topic_title'], $event['start'])),
366
-			'U_VIEW_FORUM'		=> append_sid($this->base->generate_forum_link($event['forum_id'] , $data['forum_name'])),
367
-			'S_POLL_ACTION'		=> append_sid($this->base->generate_topic_link($event['forum_id'] , $data['forum_name'], $event['topic_id'], $data['topic_title'], $event['start'])),
368
-		));
369
-	}
370
-
371
-	/**
372
-	 * Assign topic data to global variables for pagination
373
-	 *
374
-	 * @param	object	$event	The event object
375
-	 * @return	null
376
-	 * @access	public
377
-	 */
378
-	public function viewtopic_assign_template_vars_before($event)
379
-	{
380
-		// assign to be used in pagination_generate_page_link
381
-		$this->topic_data = array(
382
-			'forum_id' => $event['topic_data']['forum_id'],
383
-			'forum_name' => $event['topic_data']['forum_name'],
384
-			'topic_id' => $event['topic_data']['topic_id'],
385
-			'topic_title' => $event['topic_data']['topic_title']
386
-		);
387
-	}
388
-
389
-	public function viewtopic_before_f_read_check()
390
-	{
391
-		$this->in_viewtopic = true;
392
-	}
393
-
394
-	/**
395
-	 * Rewrite the canonical URL on viewtopic.php
396
-	 *
397
-	 * @param	object	$event	The event object
398
-	 * @return	null
399
-	 * @access	public
400
-	 */
401
-	public function viewtopic_modify_page_title($event)
402
-	{
403
-		$start = $this->request->variable('start', 0);
404
-		$data = $event['topic_data'];
405
-		$this->template->assign_vars(array(
406
-			'U_CANONICAL'		=> $this->base->generate_topic_link($data['forum_id'], $data['forum_name'], $data['topic_id'], $data['topic_title'], $start, true),
407
-		));
408
-	}
409
-
410
-	/**
411
-	 * Rewrite mini post img link
412
-	 *
413
-	 * @param	object	$event	The event object
414
-	 * @return	null
415
-	 * @access	public
416
-	 */
417
-	public function viewtopic_modify_post_row($event)
418
-	{
419
-		$row = $event['post_row'];
420
-		$start = $this->request->variable('start', 0);
421
-		$data = $event['topic_data'];
422
-		$row['U_MINI_POST'] = append_sid($this->base->generate_topic_link($data['forum_id'], $data['forum_name'], $data['topic_id'], $data['topic_title'], $start) . '#p' . $event['row']['post_id']);
423
-		$event['post_row'] = $row;
424
-	}
19
+    /** @var \tas2580\seourls\event\base */
20
+    protected $base;
21
+
22
+    /** @var \phpbb\template\template */
23
+    protected $template;
24
+
25
+    /** @var \phpbb\request\request */
26
+    protected $request;
27
+
28
+    /** @var \phpbb\path_helper */
29
+    protected $path_helper;
30
+
31
+    /** @var string phpbb_root_path */
32
+    protected $phpbb_root_path;
33
+
34
+    /** @var string php_ext */
35
+    protected $php_ext;
36
+
37
+    private $in_viewforum;
38
+
39
+    /**
40
+     * Constructor
41
+     *
42
+     * @param \tas2580\seourls\event\base	$base
43
+     * @param \phpbb\template\template		$template				Template object
44
+     * @param \phpbb\request\request		$request				Request object
45
+     * @param \phpbb\path_helper			$path_helper			Controller helper object
46
+     * @param string						$phpbb_root_path		phpbb_root_path
47
+     * @param string						$php_ext				php_ext
48
+     * @access public
49
+     */
50
+    public function __construct(\tas2580\seourls\event\base $base, \phpbb\template\template $template, \phpbb\request\request $request, \phpbb\path_helper $path_helper, $phpbb_root_path, $php_ext)
51
+    {
52
+        $this->base = $base;
53
+        $this->template = $template;
54
+        $this->request = $request;
55
+        $this->path_helper = $path_helper;
56
+        $this->phpbb_root_path = $phpbb_root_path;
57
+        $this->php_ext = $php_ext;
58
+
59
+        $this->in_viewtopic = false;
60
+    }
61
+
62
+    /**
63
+     * Assign functions defined in this class to event listeners in the core
64
+     *
65
+     * @return array
66
+     * @static
67
+     * @access public
68
+     */
69
+    public static function getSubscribedEvents()
70
+    {
71
+        return array(
72
+            'core.append_sid'										=> 'append_sid',
73
+            'core.display_forums_modify_sql'						=> 'display_forums_modify_sql',
74
+            'core.display_forums_modify_template_vars'				=> 'display_forums_modify_template_vars',
75
+            'core.display_forums_modify_forum_rows'					=> 'display_forums_modify_forum_rows',
76
+            'core.display_forums_modify_category_template_vars'		=> 'display_forums_modify_category_template_vars',
77
+            'core.generate_forum_nav'								=> 'generate_forum_nav',
78
+            'core.make_jumpbox_modify_tpl_ary'						=> 'make_jumpbox_modify_tpl_ary',				// Not in phpBB
79
+            'core.memberlist_view_profile'							=> 'memberlist_view_profile',
80
+            'core.pagination_generate_page_link'					=> 'pagination_generate_page_link',
81
+            'core.search_modify_tpl_ary'							=> 'search_modify_tpl_ary',
82
+            'core.viewforum_modify_topicrow'						=> 'viewforum_modify_topicrow',
83
+            'core.viewforum_get_topic_data'							=> 'viewforum_get_topic_data',
84
+            'core.viewtopic_assign_template_vars_before'			=> 'viewtopic_assign_template_vars_before',
85
+            'core.viewtopic_before_f_read_check'					=> 'viewtopic_before_f_read_check',
86
+            'core.viewtopic_modify_page_title'						=> 'viewtopic_modify_page_title',
87
+            'core.viewtopic_modify_post_row'						=> 'viewtopic_modify_post_row',
88
+            'core.viewtopic_get_post_data'							=> 'viewtopic_get_post_data',
89
+        );
90
+    }
91
+
92
+    /**
93
+     * Correct the path of $viewtopic_url
94
+     *
95
+     * @param	object	$event	The event object
96
+     * @return	null
97
+     * @access	public
98
+     */
99
+    public function append_sid($event)
100
+    {
101
+        if ($this->in_viewtopic && preg_match('#./../viewtopic.' . $this->php_ext  . '#', $event['url']))
102
+        {
103
+            $url = '../viewtopic.' . $this->php_ext ;
104
+            $event['url'] = $url;
105
+        }
106
+        if (isset($event['params']['redirect']))
107
+        {
108
+            $params = $event['params'];
109
+            $params['redirect'] = str_replace('..', '.', $event['params']['redirect']);
110
+            $event['params'] = $params;
111
+        }
112
+    }
113
+
114
+    /**
115
+     * Get informations for the last post from Database
116
+     *
117
+     * @param	object	$event	The event object
118
+     * @return	null
119
+     * @access	public
120
+     */
121
+    public function display_forums_modify_sql($event)
122
+    {
123
+        $sql_array = $event['sql_ary'];
124
+        $sql_array['LEFT_JOIN'][] = array(
125
+            'FROM' => array(TOPICS_TABLE => 't'),
126
+            'ON' => "f.forum_last_post_id = t.topic_last_post_id"
127
+        );
128
+        $sql_array['SELECT'] .= ', t.topic_title, t.topic_id, t.topic_posts_approved, t.topic_posts_unapproved, t.topic_posts_softdeleted';
129
+        $event['sql_ary'] = $sql_array;
130
+    }
131
+
132
+    /**
133
+     * Store informations for the last post in forum_rows array
134
+     *
135
+     * @param	object	$event	The event object
136
+     * @return	null
137
+     * @access	public
138
+     */
139
+    public function display_forums_modify_forum_rows($event)
140
+    {
141
+        $forum_rows = $event['forum_rows'];
142
+        if ($event['row']['forum_last_post_time'] == $forum_rows[$event['parent_id']]['forum_last_post_time'])
143
+        {
144
+            $forum_rows[$event['parent_id']]['forum_name_last_post'] =$event['row']['forum_name'];
145
+            $forum_rows[$event['parent_id']]['topic_id_last_post'] =$event['row']['topic_id'];
146
+            $forum_rows[$event['parent_id']]['topic_title_last_post'] =$event['row']['topic_title'];
147
+            $event['forum_rows'] = $forum_rows;
148
+        }
149
+    }
150
+
151
+    /**
152
+     * Rewrite links to forums and subforums in forum index
153
+     * also correct the path of the forum images if we are in a forum
154
+     *
155
+     * @param	object	$event	The event object
156
+     * @return	null
157
+     * @access	public
158
+     */
159
+    public function display_forums_modify_template_vars($event)
160
+    {
161
+        $subforums_row = $event['subforums_row'];
162
+        $forum_row = $event['forum_row'];
163
+
164
+        // Rewrite URLs of sub forums
165
+        foreach ($subforums_row as $i => $subforum)
166
+        {
167
+            // A little bit a dirty way, but there is no better solution
168
+            $query = str_replace('&', '&', parse_url($subforum['U_SUBFORUM'], PHP_URL_QUERY));
169
+            parse_str($query, $id);
170
+            $subforums_row[$i]['U_SUBFORUM'] = append_sid($this->base->generate_forum_link($id['f'], $subforum['SUBFORUM_NAME']));
171
+        }
172
+
173
+        // Update the image source in forums
174
+        $img = $this->path_helper->update_web_root_path($forum_row['FORUM_IMAGE_SRC']);
175
+        $forum_row['FORUM_IMAGE'] = preg_replace('#img src=\"(.*)\" alt#', 'img src="' . $img . '" alt', $forum_row['FORUM_IMAGE']);
176
+
177
+        // Rewrite links to topics, posts and forums
178
+        $replies = $this->base->get_count('topic_posts', $event['row'], $event['row']['forum_id']) - 1;
179
+        $url = $this->base->generate_topic_link($event['row']['forum_id_last_post'], $event['row']['forum_name_last_post'], $event['row']['topic_id_last_post'], $event['row']['topic_title_last_post']);
180
+        $forum_row['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($replies, $url) . '#p' . $event['row']['forum_last_post_id']);
181
+        $forum_row['U_VIEWFORUM'] = append_sid($this->base->generate_forum_link($forum_row['FORUM_ID'], $forum_row['FORUM_NAME']));
182
+        $forum_row['U_NEWEST_POST'] = $url . '?view=unread#unread';
183
+
184
+        $event['subforums_row'] = $subforums_row;
185
+        $event['forum_row'] = $forum_row;
186
+    }
187
+
188
+    /**
189
+     * Rewrite the categorie links
190
+     *
191
+     * @param	object	$event	The event object
192
+     * @return	null
193
+     * @access	public
194
+     */
195
+    public function display_forums_modify_category_template_vars($event)
196
+    {
197
+        $cat_row = $event['cat_row'];
198
+        $row = $event['row'];
199
+        $cat_row['U_VIEWFORUM'] = append_sid($this->base->generate_forum_link($row['forum_id'], $row['forum_name']));
200
+        $event['cat_row'] = $cat_row;
201
+    }
202
+
203
+    /**
204
+     * Rewrite links in breadcrumbs
205
+     *
206
+     * @param	object	$event	The event object
207
+     * @return	null
208
+     * @access	public
209
+     */
210
+    public function generate_forum_nav($event)
211
+    {
212
+        $forum_data = $event['forum_data'];
213
+        $navlinks = $event['navlinks'];
214
+        $navlinks_parents = $event['navlinks_parents'];
215
+
216
+        foreach ($navlinks_parents as $id => $data)
217
+        {
218
+            $navlinks_parents[$id]['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($data['FORUM_ID'] , $data['FORUM_NAME']));
219
+        }
220
+
221
+        $navlinks['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($forum_data['forum_id'], $forum_data['forum_name']));
222
+        $event['navlinks'] = $navlinks;
223
+        $event['navlinks_parents'] = $navlinks_parents;
224
+    }
225
+
226
+    // Not in phpBB
227
+    public function make_jumpbox_modify_tpl_ary($event)
228
+    {
229
+        $tpl_ary = $event['tpl_ary'];
230
+        $row = $event['row'];
231
+        foreach ($tpl_ary as $id => $data)
232
+        {
233
+            $tpl_ary[$id]['LINK']	 = append_sid($this->base->generate_forum_link($row['forum_id'], $row['forum_name']));
234
+        }
235
+
236
+        $event['tpl_ary'] = $tpl_ary;
237
+    }
238
+
239
+    /**
240
+     * Rewrite links to most active forum and topic on profile page
241
+     *
242
+     * @param	object	$event	The event object
243
+     * @return	null
244
+     * @access	public
245
+     */
246
+    public function memberlist_view_profile($event)
247
+    {
248
+        $data = $event['member'];
249
+        $this->template->assign_vars(array(
250
+            'U_ACTIVE_FORUM' => $this->base->generate_forum_link($data['active_f_row']['forum_id'], $data['active_f_row']['forum_name'], 0, true),
251
+            'U_ACTIVE_TOPIC' => $this->base->generate_topic_link($data['active_f_row']['forum_id'], $data['active_f_row']['forum_name'], $data['active_t_row']['topic_id'], $data['active_t_row']['topic_title'], 0, true),
252
+        ));
253
+    }
254
+
255
+    /**
256
+     * Rewrite pagination links
257
+     *
258
+     * @param	object	$event	The event object
259
+     * @return	null
260
+     * @access	public
261
+     */
262
+    public function pagination_generate_page_link($event)
263
+    {
264
+        // If we have a sort key we do not rewrite the URL
265
+        $query = str_replace('&', '&', parse_url($event['base_url'], PHP_URL_QUERY));
266
+        parse_str($query, $param);
267
+        if (isset($param['sd']) || isset($param['sk']) || isset($param['st']))
268
+        {
269
+            return;
270
+        }
271
+
272
+        $start = (($event['on_page'] - 1) * $event['per_page']);
273
+        if (!empty($this->topic_data) && isset($param['f']) && isset($param['t']))
274
+        {
275
+            $event['generate_page_link_override'] = append_sid($this->base->generate_topic_link($this->topic_data['forum_id'], $this->topic_data['forum_name'], $this->topic_data['topic_id'], $this->topic_data['topic_title'], $start));
276
+        }
277
+        else if (!empty($this->forum_data) && isset($param['f']))
278
+        {
279
+            $event['generate_page_link_override'] = append_sid($this->base->generate_forum_link($this->forum_data['forum_id'], $this->forum_data['forum_name'], $start));
280
+        }
281
+    }
282
+
283
+    /**
284
+     * Rewrite links in the search result
285
+     *
286
+     * @param	object	$event	The event object
287
+     * @return	null
288
+     * @access	public
289
+     */
290
+    public function search_modify_tpl_ary($event)
291
+    {
292
+        $replies = $this->base->get_count('topic_posts', $event['row'], $event['row']['forum_id']) - 1;
293
+        $u_view_topic = $this->base->generate_topic_link($event['row']['forum_id'], $event['row']['forum_name'], $event['row']['topic_id'], $event['row']['topic_title']);
294
+
295
+        $tpl_ary = $event['tpl_ary'];
296
+        $tpl_ary['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($replies, $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
297
+        $tpl_ary['U_VIEW_TOPIC'] = append_sid($u_view_topic);
298
+        $tpl_ary['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($event['row']['forum_id'], $event['row']['forum_name']));
299
+        $tpl_ary['U_NEWEST_POST'] = $u_view_topic . '?view=unread#unread';
300
+
301
+        $event['tpl_ary'] = $tpl_ary;
302
+    }
303
+
304
+    /**
305
+     * Rewrite links to topics in forum view
306
+     *
307
+     * @param	object	$event	The event object
308
+     * @return	null
309
+     * @access	public
310
+     */
311
+    public function viewforum_modify_topicrow($event)
312
+    {
313
+        // assign to be used in pagination_generate_page_link
314
+        $this->topic_data = array(
315
+            'forum_id' => $event['topic_row']['FORUM_ID'],
316
+            'forum_name' => $event['topic_row']['FORUM_NAME'],
317
+            'topic_id' => $event['topic_row']['TOPIC_ID'],
318
+            'topic_title' => $event['topic_row']['TOPIC_TITLE']
319
+        );
320
+
321
+        $topic_row = $event['topic_row'];
322
+
323
+        $u_view_topic = $this->base->generate_topic_link($topic_row['FORUM_ID'], $topic_row['FORUM_NAME'], $topic_row['TOPIC_ID'], $topic_row['TOPIC_TITLE']);
324
+        $topic_row['U_VIEW_TOPIC'] = append_sid($u_view_topic);
325
+        $topic_row['U_VIEW_FORUM'] = append_sid($this->base->generate_forum_link($topic_row['FORUM_ID'], $topic_row['FORUM_NAME']));
326
+        $topic_row['U_LAST_POST'] = append_sid($this->base->generate_lastpost_link($event['topic_row']['REPLIES'], $u_view_topic) . '#p' . $event['row']['topic_last_post_id']);
327
+        $topic_row['U_NEWEST_POST'] = $u_view_topic . '?view=unread#unread';
328
+
329
+        $event['topic_row'] = $topic_row;
330
+    }
331
+
332
+    /**
333
+     * Rewrite the canonical URL on viewforum.php
334
+     *
335
+     * @param	object	$event	The event object
336
+     * @return	null
337
+     * @access	public
338
+     */
339
+    public function viewforum_get_topic_data($event)
340
+    {
341
+        // assign to be used in pagination_generate_page_link
342
+        $this->forum_data = array(
343
+            'forum_id' => $event['forum_data']['forum_id'],
344
+            'forum_name' => $event['forum_data']['forum_name']
345
+        );
346
+
347
+        $start = $this->request->variable('start', 0);
348
+        $this->template->assign_vars(array(
349
+            'U_VIEW_FORUM'		=> append_sid($this->base->generate_forum_link($event['forum_data']['forum_id'], $event['forum_data']['forum_name'], $start)),
350
+            'U_CANONICAL'		=> $this->base->generate_forum_link($event['forum_data']['forum_id'], $event['forum_data']['forum_name'], $start, true),
351
+        ));
352
+    }
353
+
354
+    /**
355
+     * Rewrite the topic URL for the headline of the topic page and the link back to forum
356
+     *
357
+     * @param	object	$event	The event object
358
+     * @return	null
359
+     * @access	public
360
+     */
361
+    public function viewtopic_get_post_data($event)
362
+    {
363
+        $data = $event['topic_data'];
364
+        $this->template->assign_vars(array(
365
+            'U_VIEW_TOPIC'		=> append_sid($this->base->generate_topic_link($event['forum_id'] , $data['forum_name'], $event['topic_id'], $data['topic_title'], $event['start'])),
366
+            'U_VIEW_FORUM'		=> append_sid($this->base->generate_forum_link($event['forum_id'] , $data['forum_name'])),
367
+            'S_POLL_ACTION'		=> append_sid($this->base->generate_topic_link($event['forum_id'] , $data['forum_name'], $event['topic_id'], $data['topic_title'], $event['start'])),
368
+        ));
369
+    }
370
+
371
+    /**
372
+     * Assign topic data to global variables for pagination
373
+     *
374
+     * @param	object	$event	The event object
375
+     * @return	null
376
+     * @access	public
377
+     */
378
+    public function viewtopic_assign_template_vars_before($event)
379
+    {
380
+        // assign to be used in pagination_generate_page_link
381
+        $this->topic_data = array(
382
+            'forum_id' => $event['topic_data']['forum_id'],
383
+            'forum_name' => $event['topic_data']['forum_name'],
384
+            'topic_id' => $event['topic_data']['topic_id'],
385
+            'topic_title' => $event['topic_data']['topic_title']
386
+        );
387
+    }
388
+
389
+    public function viewtopic_before_f_read_check()
390
+    {
391
+        $this->in_viewtopic = true;
392
+    }
393
+
394
+    /**
395
+     * Rewrite the canonical URL on viewtopic.php
396
+     *
397
+     * @param	object	$event	The event object
398
+     * @return	null
399
+     * @access	public
400
+     */
401
+    public function viewtopic_modify_page_title($event)
402
+    {
403
+        $start = $this->request->variable('start', 0);
404
+        $data = $event['topic_data'];
405
+        $this->template->assign_vars(array(
406
+            'U_CANONICAL'		=> $this->base->generate_topic_link($data['forum_id'], $data['forum_name'], $data['topic_id'], $data['topic_title'], $start, true),
407
+        ));
408
+    }
409
+
410
+    /**
411
+     * Rewrite mini post img link
412
+     *
413
+     * @param	object	$event	The event object
414
+     * @return	null
415
+     * @access	public
416
+     */
417
+    public function viewtopic_modify_post_row($event)
418
+    {
419
+        $row = $event['post_row'];
420
+        $start = $this->request->variable('start', 0);
421
+        $data = $event['topic_data'];
422
+        $row['U_MINI_POST'] = append_sid($this->base->generate_topic_link($data['forum_id'], $data['forum_name'], $data['topic_id'], $data['topic_title'], $start) . '#p' . $event['row']['post_id']);
423
+        $event['post_row'] = $row;
424
+    }
425 425
 }
Please login to merge, or discard this patch.
event/base.php 1 patch
Indentation   +124 added lines, -124 removed lines patch added patch discarded remove patch
@@ -15,140 +15,140 @@
 block discarded – undo
15 15
 class base
16 16
 {
17 17
 
18
-	/** @var \phpbb\auth\auth */
19
-	protected $auth;
18
+    /** @var \phpbb\auth\auth */
19
+    protected $auth;
20 20
 
21
-	/** @var \phpbb\config\config */
22
-	protected $config;
21
+    /** @var \phpbb\config\config */
22
+    protected $config;
23 23
 
24
-	/** @var string phpbb_root_path */
25
-	protected $phpbb_root_path;
24
+    /** @var string phpbb_root_path */
25
+    protected $phpbb_root_path;
26 26
 
27
-	/**
28
-	 * Constructor
29
-	 *
30
-	 * @param \phpbb\auth\auth				auth					Authentication object
31
-	 * @param \phpbb\config\config			$config					Config Object
32
-	 * @param string						$phpbb_root_path		phpbb_root_path
33
-	 * @access public
34
-	 */
35
-	public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, $phpbb_root_path)
36
-	{
37
-		$this->auth = $auth;
38
-		$this->config = $config;
39
-		$this->phpbb_root_path = $phpbb_root_path;
40
-	}
27
+    /**
28
+     * Constructor
29
+     *
30
+     * @param \phpbb\auth\auth				auth					Authentication object
31
+     * @param \phpbb\config\config			$config					Config Object
32
+     * @param string						$phpbb_root_path		phpbb_root_path
33
+     * @access public
34
+     */
35
+    public function __construct(\phpbb\auth\auth $auth, \phpbb\config\config $config, $phpbb_root_path)
36
+    {
37
+        $this->auth = $auth;
38
+        $this->config = $config;
39
+        $this->phpbb_root_path = $phpbb_root_path;
40
+    }
41 41
 
42
-	/**
43
-	 * Generate the SEO link for a topic
44
-	 *
45
-	 * @param	int		$forum_id		The ID of the forum
46
-	 * @param	string	$forum_name		The title of the forum
47
-	 * @param	int		$topic_id		The ID if the topic
48
-	 * @param	string	$topic_title	The title of the topic
49
-	 * @param	int		$start			Optional start parameter
50
-	 * @param	bool	$full			Return the full URL
51
-	 * @return	string	The SEO URL
52
-	 * @access private
53
-	 */
54
-	public function generate_topic_link($forum_id, $forum_name, $topic_id, $topic_title, $start = 0, $full = false)
55
-	{
56
-		if ($full)
57
-		{
58
-			return generate_board_url() . '/' . $this->title_to_url($forum_name) . '-f' . $forum_id . '/' . $this->title_to_url($topic_title) . '-t' . $topic_id . ($start ? '-s' . $start : '') . '.html';
59
-		}
60
-		return $this->phpbb_root_path . $this->title_to_url($forum_name) . '-f' . $forum_id . '/' . $this->title_to_url($topic_title) . '-t' . $topic_id . ($start ? '-s' . $start : '') . '.html';
61
-	}
42
+    /**
43
+     * Generate the SEO link for a topic
44
+     *
45
+     * @param	int		$forum_id		The ID of the forum
46
+     * @param	string	$forum_name		The title of the forum
47
+     * @param	int		$topic_id		The ID if the topic
48
+     * @param	string	$topic_title	The title of the topic
49
+     * @param	int		$start			Optional start parameter
50
+     * @param	bool	$full			Return the full URL
51
+     * @return	string	The SEO URL
52
+     * @access private
53
+     */
54
+    public function generate_topic_link($forum_id, $forum_name, $topic_id, $topic_title, $start = 0, $full = false)
55
+    {
56
+        if ($full)
57
+        {
58
+            return generate_board_url() . '/' . $this->title_to_url($forum_name) . '-f' . $forum_id . '/' . $this->title_to_url($topic_title) . '-t' . $topic_id . ($start ? '-s' . $start : '') . '.html';
59
+        }
60
+        return $this->phpbb_root_path . $this->title_to_url($forum_name) . '-f' . $forum_id . '/' . $this->title_to_url($topic_title) . '-t' . $topic_id . ($start ? '-s' . $start : '') . '.html';
61
+    }
62 62
 
63
-	/**
64
-	 * Generate the SEO link for a forum
65
-	 *
66
-	 * @param	int		$forum_id		The ID of the forum
67
-	 * @param	string	$forum_name		The title of the forum
68
-	 * @param	int		$start			Optional start parameter
69
-	 * @param	bool	$full			Return the full URL
70
-	 * @return	string	The SEO URL
71
-	 * @access private
72
-	 */
73
-	public function generate_forum_link($forum_id, $forum_name, $start = 0, $full = false)
74
-	{
75
-		if ($full)
76
-		{
77
-			return generate_board_url() . '/' . $this->title_to_url($forum_name) . '-f' . $forum_id . '/' . ($start ? 'index-s' . $start . '.html' : '');
78
-		}
79
-		return $this->phpbb_root_path . $this->title_to_url($forum_name) . '-f' . $forum_id . '/' . ($start ? 'index-s' . $start . '.html' : '');
80
-	}
63
+    /**
64
+     * Generate the SEO link for a forum
65
+     *
66
+     * @param	int		$forum_id		The ID of the forum
67
+     * @param	string	$forum_name		The title of the forum
68
+     * @param	int		$start			Optional start parameter
69
+     * @param	bool	$full			Return the full URL
70
+     * @return	string	The SEO URL
71
+     * @access private
72
+     */
73
+    public function generate_forum_link($forum_id, $forum_name, $start = 0, $full = false)
74
+    {
75
+        if ($full)
76
+        {
77
+            return generate_board_url() . '/' . $this->title_to_url($forum_name) . '-f' . $forum_id . '/' . ($start ? 'index-s' . $start . '.html' : '');
78
+        }
79
+        return $this->phpbb_root_path . $this->title_to_url($forum_name) . '-f' . $forum_id . '/' . ($start ? 'index-s' . $start . '.html' : '');
80
+    }
81 81
 
82
-	/**
83
-	 *
84
-	 * @global	type	$_SID
85
-	 * @param	int		$replies	Replays in the topic
86
-	 * @param	string	$url		URL oft the topic
87
-	 * @return	string				The URL with start included
88
-	 */
89
-	public function generate_lastpost_link($replies, $url)
90
-	{
91
-		$url = str_replace('.html', '', $url);
92
-		$per_page = ($this->config['posts_per_page'] <= 0) ? 1 : $this->config['posts_per_page'];
93
-		$last_post_link = '';
94
-		if (($replies + 1) > $per_page)
95
-		{
96
-			for ($j = 0; $j < $replies + 1; $j += $per_page)
97
-			{
98
-				$last_post_link = $url . '-s' . $j . '.html';
99
-			}
100
-		}
101
-		else
102
-		{
103
-			$last_post_link = $url . '.html';
104
-		}
105
-		return $last_post_link;
106
-	}
82
+    /**
83
+     *
84
+     * @global	type	$_SID
85
+     * @param	int		$replies	Replays in the topic
86
+     * @param	string	$url		URL oft the topic
87
+     * @return	string				The URL with start included
88
+     */
89
+    public function generate_lastpost_link($replies, $url)
90
+    {
91
+        $url = str_replace('.html', '', $url);
92
+        $per_page = ($this->config['posts_per_page'] <= 0) ? 1 : $this->config['posts_per_page'];
93
+        $last_post_link = '';
94
+        if (($replies + 1) > $per_page)
95
+        {
96
+            for ($j = 0; $j < $replies + 1; $j += $per_page)
97
+            {
98
+                $last_post_link = $url . '-s' . $j . '.html';
99
+            }
100
+        }
101
+        else
102
+        {
103
+            $last_post_link = $url . '.html';
104
+        }
105
+        return $last_post_link;
106
+    }
107 107
 
108
-	/**
109
-	 * Replace letters to use title in URL
110
-	 *
111
-	 * @param	string	$title	The title to use in the URL
112
-	 * @return	string	Title to use in URLs
113
-	 */
114
-	public static function title_to_url($title)
115
-	{
116
-		$url = strtolower(censor_text(utf8_normalize_nfc(html_entity_decode(strip_tags($title)))));
108
+    /**
109
+     * Replace letters to use title in URL
110
+     *
111
+     * @param	string	$title	The title to use in the URL
112
+     * @return	string	Title to use in URLs
113
+     */
114
+    public static function title_to_url($title)
115
+    {
116
+        $url = strtolower(censor_text(utf8_normalize_nfc(html_entity_decode(strip_tags($title)))));
117 117
 
118
-		// Let's replace
119
-		$url_search = array(
120
-		' ', 'í', 'ý', 'ß', 'ö', 'ô', 'ó', 'ò', 'ä', 'â', 'à', 'á', 'é', 'è', 'ü', 'ú', 'ù', 'ñ', 'ß', '²', '³', '@', '€', '$',
121
-		'ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ż', 'ź'
122
-		);
123
-		$url_replace = array(
124
-		'-', 'i', 'y', 's', 'oe', 'o', 'o', 'o', 'ae', 'a', 'a', 'a', 'e', 'e', 'ue', 'u', 'u', 'n', 'ss', '2', '3', 'at', 'eur', 'usd',
125
-		'a', 'c', 'e', 'l', 'n', 'o', 's', 'z', 'z'
126
-		);
127
-		$url = str_replace($url_search, $url_replace, $url);
118
+        // Let's replace
119
+        $url_search = array(
120
+        ' ', 'í', 'ý', 'ß', 'ö', 'ô', 'ó', 'ò', 'ä', 'â', 'à', 'á', 'é', 'è', 'ü', 'ú', 'ù', 'ñ', 'ß', '²', '³', '@', '€', '$',
121
+        'ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ż', 'ź'
122
+        );
123
+        $url_replace = array(
124
+        '-', 'i', 'y', 's', 'oe', 'o', 'o', 'o', 'ae', 'a', 'a', 'a', 'e', 'e', 'ue', 'u', 'u', 'n', 'ss', '2', '3', 'at', 'eur', 'usd',
125
+        'a', 'c', 'e', 'l', 'n', 'o', 's', 'z', 'z'
126
+        );
127
+        $url = str_replace($url_search, $url_replace, $url);
128 128
 
129
-		$url = preg_replace('/[^\w\d]/', '-', $url);
130
-		$url = preg_replace('/[-]{2,}/', '-', $url);
131
-		$url = trim($url, '-');
129
+        $url = preg_replace('/[^\w\d]/', '-', $url);
130
+        $url = preg_replace('/[-]{2,}/', '-', $url);
131
+        $url = trim($url, '-');
132 132
 
133
-		$url = substr($url, 0, 50); // Max length for a title in URL
134
-		return urlencode($url);
135
-	}
133
+        $url = substr($url, 0, 50); // Max length for a title in URL
134
+        return urlencode($url);
135
+    }
136 136
 
137
-	/**
138
-	 * Get the topics post count or the forums post/topic count based on permissions
139
-	 *
140
-	 * @param $mode            string    One of topic_posts, forum_posts or forum_topics
141
-	 * @param $data            array    Array with the topic/forum data to calculate from
142
-	 * @param $forum_id        int        The forum id is used for permission checks
143
-	 * @return int    Number of posts/topics the user can see in the topic/forum
144
-	 */
145
-	public function get_count($mode, $data, $forum_id)
146
-	{
147
-		if (!$this->auth->acl_get('m_approve', $forum_id))
148
-		{
149
-			return (int) $data[$mode . '_approved'];
150
-		}
137
+    /**
138
+     * Get the topics post count or the forums post/topic count based on permissions
139
+     *
140
+     * @param $mode            string    One of topic_posts, forum_posts or forum_topics
141
+     * @param $data            array    Array with the topic/forum data to calculate from
142
+     * @param $forum_id        int        The forum id is used for permission checks
143
+     * @return int    Number of posts/topics the user can see in the topic/forum
144
+     */
145
+    public function get_count($mode, $data, $forum_id)
146
+    {
147
+        if (!$this->auth->acl_get('m_approve', $forum_id))
148
+        {
149
+            return (int) $data[$mode . '_approved'];
150
+        }
151 151
 
152
-		return (int) $data[$mode . '_approved'] + (int) $data[$mode . '_unapproved'] + (int) $data[$mode . '_softdeleted'];
153
-	}
152
+        return (int) $data[$mode . '_approved'] + (int) $data[$mode . '_unapproved'] + (int) $data[$mode . '_softdeleted'];
153
+    }
154 154
 }
Please login to merge, or discard this patch.
tests/base/database_test.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -4,15 +4,15 @@
 block discarded – undo
4 4
 
5 5
 abstract class database_test extends \phpbb_database_test_case
6 6
 {
7
-	protected static function setup_extensions()
8
-	{
9
-		return array('tas2580/seourls');
10
-	}
11
-	protected $db;
12
-	public function setUp()
13
-	{
14
-		parent::setUp();
15
-		global $db;
16
-		$db = $this->db = $this->new_dbal();
17
-	}
7
+    protected static function setup_extensions()
8
+    {
9
+        return array('tas2580/seourls');
10
+    }
11
+    protected $db;
12
+    public function setUp()
13
+    {
14
+        parent::setUp();
15
+        global $db;
16
+        $db = $this->db = $this->new_dbal();
17
+    }
18 18
 }
Please login to merge, or discard this patch.
tests/base/functional_test.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -3,8 +3,8 @@
 block discarded – undo
3 3
 namespace tas2580\seourls\tests\base;
4 4
 abstract class functional_test extends \phpbb_functional_test_case
5 5
 {
6
-	protected static function setup_extensions()
7
-	{
8
-		return array('tas2580/seourls');
9
-	}
6
+    protected static function setup_extensions()
7
+    {
8
+        return array('tas2580/seourls');
9
+    }
10 10
 }
Please login to merge, or discard this patch.