summary refs log tree commit diff stats
path: root/includes/layout.php
diff options
context:
space:
mode:
authorStarla Insigna <hatkirby@fourisland.com>2009-10-03 10:30:17 -0400
committerStarla Insigna <hatkirby@fourisland.com>2009-10-03 10:30:17 -0400
commitdc0fb9445e8a3ede8bc33d6779fadd89b7ea6893 (patch)
tree511b0f752889172163f3801cdbe311f0efc55540 /includes/layout.php
parent0e4089184a44719fbd1284acb047ab7547674412 (diff)
downloadfourisland-dc0fb9445e8a3ede8bc33d6779fadd89b7ea6893.tar.gz
fourisland-dc0fb9445e8a3ede8bc33d6779fadd89b7ea6893.tar.bz2
fourisland-dc0fb9445e8a3ede8bc33d6779fadd89b7ea6893.zip
Created Theme Switcher
Also rewrote the way layouts work. Now, each layout requires a "layout.tpl" file (which contains the header and footer for the layout) and a "style.php"
file (which contains and can include other files that contain the CSS for the layout). Each layout has it's own folder in theme/layouts and you can switch
between them using a combo box in the Hatbar.

Layouts 6.2 and 4.5 have been modified to work with new Layout 7 features such as AJAX, and they should be relatively free of bugs. Layout 3 has not yet
been transferred because since it is pre-The New Four Island, it will be very difficult to do so.

This changeset requires manual external code changes:

* The line below must be added above the functions.php include in The Fourm's funnctions.php
	require('/svr/www/hatkirby/fourisland/main/includes/session.php');
* The block of Four Island code in The Fourm's page_header() function should be replaced with:
	global $fi_pagetitle;
	$fi_pagetitle = $page_title;

	ob_start();
* The block of Four Island code in The Fourm's page_footer() function should be replaced with:
	global $fi_pagetitle;

	$content = ob_get_contents();
	ob_end_clean();

	$noRightbar = 1;
	$onFourm = 1;
	$pageCategory = 'fourm';

	if ($fi_pagetitle == 'Index page')
	{
		$title = 'The Fourm';
	} else if (strpos($fi_pagetitle, 'View topic') !== FALSE)
	{
		$title = str_replace('View topic - ', 'Topic: ', $fi_pagetitle) . ' - The Fourm';
	} else if (strpos($fi_pagetitle, 'View forum') !== FALSE)
	{
		$title = str_replace('View forum - ', 'Fourm: ', $fi_pagetitle) . ' - The Fourm';
	} else if (strpos($fi_pagetitle, 'Viewing profile') !== FALSE)
	{
		$title = str_replace('Viewing profile - ', 'Member: ', $fi_pagetitle) . ' - The Fourm';
	} else {
		$title = $fi_pagetitle . ' - The Fourm';
	}

	if ($_GET['view'] != 'print')
	{
		include('/svr/www/hatkirby/fourisland/main/includes/layout.php');
	} else {
		echo $content;
	}

Closes #117
Diffstat (limited to 'includes/layout.php')
-rw-r--r--includes/layout.php300
1 files changed, 300 insertions, 0 deletions
diff --git a/includes/layout.php b/includes/layout.php new file mode 100644 index 0000000..8e92256 --- /dev/null +++ b/includes/layout.php
@@ -0,0 +1,300 @@
1<?php
2/*
3 444444444
4 4::::::::4
5 4:::::::::4
6 4::::44::::4
7 4::::4 4::::4 Four Island
8 4::::4 4::::4
9 4::::4 4::::4 Written and maintained by Starla Insigna
104::::444444::::444
114::::::::::::::::4 includes/layout.php
124444444444:::::444
13 4::::4 Please do not use, reproduce or steal the
14 4::::4 contents of this file without explicit
15 4::::4 permission from Hatkirby.
16 44::::::44
17 4::::::::4
18 4444444444
19*/
20
21if (!defined('S_INCLUDE_FILE')) {define('S_INCLUDE_FILE',1);}
22
23require('headerproc.php');
24
25if (isset($_GET['layout']))
26{
27 if (!file_exists('theme/layouts/' . basename($_GET['layout'])))
28 {
29 $_GET['layout'] = '7';
30 }
31
32 setcookie('layout', $_GET['layout'], time()+60*60*24*30, '/', '.fourisland.com');
33
34 unset($_GET['layout']);
35
36 header('Location: ' . getRewriteURL());
37 exit;
38}
39
40$template = new FITemplate('layouts/' . getLayout() . '/layout');
41
42$template->add('CATEGORY',(isset($pageCategory)) ? $pageCategory : 'none');
43$template->add('AID',(isset($pageAID)) ? $pageAID : 'none');
44$template->add('EXTRATITLE',isset($title) ? ($title . ' - ') : '');
45$template->add(strtoupper($pageCategory) . 'ACTIVE', ' class="active"');
46
47if (($pageCategory != 'fourm') && ($pageCategory != 'wiki'))
48{
49 $template->add('REDIRPAGE',rawurlencode($_SERVER['REQUEST_URI']));
50 $template->add('LOGDATA',echoLogData());
51 $template->add('LOWERLOGDATA','log' . strtolower(echoLogData()));
52 $template->add('SID',getSessionID());
53 $template->adds_block('MEMBERS',array('exi' => 1));
54
55 if (isAdmin())
56 {
57 $template->adds_block('ADMIN',array('exi' => 1));
58 }
59}
60
61if (isset($hatNav) && is_array($hatNav))
62{
63 $template->adds_block('CREATE_HATNAV', array('exi'=>1));
64
65 foreach ($hatNav as $item)
66 {
67 $template->adds_block('HATNAV',array('TITLE' => $item['title'], 'URL' => $item['url'], 'ICON' => $item['icon']));
68 }
69}
70
71$template->add('POTW', getPollOfTheWeek());
72
73$gethits = "SELECT * FROM config WHERE name = \"hits\"";
74$gethits2 = mysql_query($gethits);
75$gethits3 = mysql_fetch_array($gethits2);
76$template->add('HITS', $gethits3['value']);
77
78$gethits = "SELECT * FROM config WHERE name = \"todayHits\"";
79$gethits2 = mysql_query($gethits);
80$gethits3 = mysql_fetch_array($gethits2);
81$template->add('TODAY', $gethits3['value']);
82
83$template->add('DATEFINDER', sd_dateFinder());
84
85if ($usingIE)
86{
87 $template->add('FLASH', 'It appears you are using Internet Explorer. Four Island is not likely to work properly in IE due to a <a href="http://www.webdevout.net/articles/beware-of-xhtml#ie">huge bug</a> in it. <a href="http://getfirefox.com/">There are better browsers out there, why not try one?</a>');
88}
89
90$getaffs = "SELECT * FROM links WHERE type = \"affiliates\" ORDER BY id ASC";
91$getaffs2 = mysql_query($getaffs);
92$i=0;
93while ($getaffs3 = mysql_fetch_array($getaffs2))
94{
95 $template->adds_block('AFFILIATES', array( 'COLOR' => getTagColor($i++),
96 'TITLE' => htmlentities($getaffs3['title']),
97 'URL' => $getaffs3['url']));
98}
99
100$getwebps = "SELECT * FROM links WHERE type = \"webprojs\" ORDER BY id ASC";
101$getwebps2 = mysql_query($getwebps);
102$i=0;
103while ($getwebps3 = mysql_fetch_array($getwebps2))
104{
105 $template->adds_block('WEBPROJS', array( 'COLOR' => getTagColor($i++),
106 'TITLE' => htmlentities($getwebps3['title']),
107 'URL' => $getwebps3['url']));
108}
109
110if (isset($onFourm))
111{
112 $template->adds_block('ONFOURM',array('exi'=>1));
113}
114
115$getcomments = "SELECT * FROM comments ORDER BY id DESC LIMIT 0,5";
116$getcomments2 = mysql_query($getcomments);
117$i=0;
118while ($getcomments3[$i] = mysql_fetch_array($getcomments2))
119{
120 if ($getcomments3[$i]['is_anon'] == 0)
121 {
122 $getuser = "SELECT * FROM phpbb_users WHERE user_id = " . $getcomments3[$i]['user_id'];
123 $getuser2 = mysql_query($getuser);
124 $getuser3 = mysql_fetch_array($getuser2);
125
126 $username = $getuser3['username'];
127 $website = $getuser3['user_website'];
128 } else if ($getcomments3[$i]['is_anon'] == 1)
129 {
130 $getanon = "SELECT * FROM anon_commenters WHERE id = " . $getcomments3[$i]['user_id'];
131 $getanon2 = mysql_query($getanon);
132 $getanon3 = mysql_fetch_array($getanon2);
133
134 if ($getanon3['id'] == $getcomments3[$i]['user_id'])
135 {
136 $username = $getanon3['username'] . ' (Guest)';
137 $website = $getanon3['website'];
138 }
139 }
140
141 if (strpos($getcomments3[$i]['page_id'], 'updates') !== FALSE)
142 {
143 $getpost = "SELECT * FROM updates WHERE id = " . substr($getcomments3[$i]['page_id'],strpos($getcomments3[$i]['page_id'],'-')+1);
144 $getpost2 = mysql_query($getpost);
145 $getpost3 = mysql_fetch_array($getpost2);
146
147 $template->adds_block('COMMENTS', array( 'ID' => $getcomments3[$i]['id'],
148 'AREA' => 'blog',
149 'CODED' => $getpost3['slug'],
150 'ENDING' => '/',
151 'TITLE' => stripslashes(htmlentities($getpost3['title'])),
152 'AUTHOR' => (($website != '') ? '<a href="' . $website . '">' . $username . '</a>' : $username)));
153 $i++;
154 } else if (strpos($getcomments3[$i]['page_id'], 'quote') !== FALSE)
155 {
156 $num = substr($getcomments3[$i]['page_id'],strpos($getcomments3[$i]['page_id'],'-')+1);
157
158 $template->adds_block('COMMENTS', array( 'ID' => $getcomments3[$i]['id'],
159 'AREA' => 'quotes',
160 'CODED' => $num,
161 'ENDING' => '.php',
162 'TITLE' => 'Quote #' . $num,
163 'AUTHOR' => (($website != '') ? '<a href="' . $website . '">' . $username . '</a>' : $username)));
164 $i++;
165 } else if (strpos($getcomments3[$i]['page_id'], 'polloftheweek') !== FALSE)
166 {
167 $getpotw = "SELECT * FROM polloftheweek WHERE id = " . substr($getcomments3[$i]['page_id'],strpos($getcomments3[$i]['page_id'],'-')+1);
168 $getpotw2 = mysql_query($getpotw);
169 $getpotw3 = mysql_fetch_array($getpotw2);
170
171 $template->adds_block('COMMENTS', array( 'ID' => $getcomments3[$i]['id'],
172 'AREA' => 'poll',
173 'CODED' => $getpotw3['id'],
174 'ENDING' => '.php',
175 'TITLE' => 'Poll "' . htmlentities($getpotw3['question']) . '"',
176 'AUTHOR' => (($website != '') ? '<a href="' . $website . '">' . $username . '</a>' : $username)));
177 $i++;
178 }
179}
180
181$users = array();
182$getusers = "SELECT DISTINCT user_id FROM comments WHERE is_anon = 0";
183$getusers2 = mysql_query($getusers);
184$i=0;
185while ($getusers3[$i] = mysql_fetch_array($getusers2))
186{
187 $getcount = "SELECT COUNT(*) FROM comments WHERE user_id = " . $getusers3[$i]['user_id'];
188 $getcount2 = mysql_query($getcount);
189 $getcount3 = mysql_fetch_array($getcount2);
190
191 $getuser = "SELECT * FROM phpbb_users WHERE user_id = " . $getusers3[$i]['user_id'];
192 $getuser2 = mysql_query($getuser);
193 $getuser3 = mysql_fetch_array($getuser2);
194
195 $username = $getuser3['username'];
196 $website = $getuser3['user_website'];
197
198 $name = (($website != '') ? '<a href="' . $website . '">' . $username . '</a>' : $username);
199 $users[] = array('name' => $name, 'count' => $getcount3['COUNT(*)']);
200
201 $i++;
202}
203
204function count_sort($a, $b)
205{
206 $a = $a['count'];
207 $b = $b['count'];
208
209 if ($a > $b)
210 {
211 return -1;
212 } else if ($a < $b)
213 {
214 return 1;
215 } else {
216 return 0;
217 }
218}
219
220usort($users, 'count_sort');
221$i=0;
222foreach ($users as $value)
223{
224 if ($i == 5)
225 {
226 break;
227 }
228
229 $template->adds_block('TOP', array( 'USERNAME' => $value['name'],
230 'COUNT' => $value['count']));
231 $i++;
232}
233
234$getpost = "SELECT * FROM phpbb_posts ORDER BY post_id DESC LIMIT 0,5";
235$getpost2 = mysql_query($getpost) or die($getpost);
236$i=0;
237while ($getpost3[$i] = mysql_fetch_array($getpost2))
238{
239 $getuser = "SELECT * FROM phpbb_users WHERE user_id = " . $getpost3[$i]['poster_id'];
240 $getuser2 = mysql_query($getuser) or die($getuser);
241 $getuser3 = mysql_fetch_array($getuser2);
242
243 $template->adds_block('FOURM', array( 'SUBJECT' => $getpost3[$i]['post_subject'],
244 'TOPIC' => $getpost3[$i]['topic_id'],
245 'POST' => $getpost3[$i]['post_id'],
246 'USERNAME' => $getuser3['username']));
247}
248
249$getpopular = "SELECT * FROM updates ORDER BY popularity DESC LIMIT 0,5";
250$getpopular2 = mysql_query($getpopular);
251$i=0;
252while ($getpopular3[$i] = mysql_fetch_array($getpopular2))
253{
254 $template->adds_block('POPULAR', array( 'CODED' => $getpopular3[$i]['slug'],
255 'TITLE' => stripslashes(htmlentities($getpopular3[$i]['title']))));
256 $i++;
257}
258
259$template->add('REVISION', exec('hg -R "' . $_SERVER['DOCUMENT_ROOT'] . '" tip --template {rev}'));
260
261$gettags = "SELECT DISTINCT tag FROM tags WHERE post_type = \"published\"";
262$gettags2 = mysql_query($gettags);
263$i=0;
264while ($gettags3[$i] = mysql_fetch_array($gettags2))
265{
266 $cnttag = "SELECT COUNT(*) FROM tags WHERE tag = \"" . $gettags3[$i]['tag'] . "\" AND post_type = \"published\"";
267 $cnttag2 = mysql_query($cnttag);
268 $cnttag3 = mysql_fetch_array($cnttag2);
269
270 $counts[$gettags3[$i]['tag']] = $cnttag3[0];
271
272 $i++;
273}
274
275$min_count = min($counts);
276$spread = max($counts) - $min_count;
277$spread = ($spread <= 0) ? 1 : $spread;
278$font_step = 8 / $spread;
279foreach ($counts as $tag => $count)
280{
281 if ($count != $min_count)
282 {
283 $template->adds_block('TAGCLOUD', array( 'TAG' => $tag,
284 'SIZE' => (8 + (($count - $min_count) * $font_step)),
285 'COUNT' => $count));
286 }
287}
288
289if (!isset($noRightbar))
290{
291 $template->adds_block('RIGHTBAR', array('exi'=>1));
292}
293
294$template->add('ME', getRewriteURL());
295
296$template->add('CONTENT', stripslashes($content));
297
298$template->display();
299
300?>