Marked some unfinished extensions as 'work-in-progress'
[mailer.git] / surfbar.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 09/05/2008 *
4  * ===================                          Last change: 09/05/2008 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : surfbar.php                                      *
8  * -------------------------------------------------------------------- *
9  * Short description : The surfbar itself                               *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Die Surfbar selbst                               *
12  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
17  * Needs to be in all Files and every File needs "svn propset           *
18  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
19  * -------------------------------------------------------------------- *
20  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
21  * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
22  * For more information visit: http://www.mxchange.org                  *
23  *                                                                      *
24  * This program is free software; you can redistribute it and/or modify *
25  * it under the terms of the GNU General Public License as published by *
26  * the Free Software Foundation; either version 2 of the License, or    *
27  * (at your option) any later version.                                  *
28  *                                                                      *
29  * This program is distributed in the hope that it will be useful,      *
30  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
31  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
32  * GNU General Public License for more details.                         *
33  *                                                                      *
34  * You should have received a copy of the GNU General Public License    *
35  * along with this program; if not, write to the Free Software          *
36  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
37  * MA  02110-1301  USA                                                  *
38  ************************************************************************/
39
40 // Load security stuff here
41 require('inc/libs/security_functions.php');
42
43 // Init start time
44 $GLOBALS['startTime'] = microtime(true);
45
46 // Set module
47 $GLOBALS['module'] = 'surfbar';
48 $GLOBALS['output_mode'] = '0';
49 $GLOBALS['header_sent'] = 3;
50
51 // Load the required file(s)
52 require('inc/config-global.php');
53
54 // Set content type
55 setContentType('text/html');
56
57 // Is a frame active?
58 if (isGetRequestParameterSet('frame')) {
59         // Then we need to set header_sent to 0
60         $GLOBALS['header_sent'] = '0';
61 } // END - if
62
63 // Only logged in users may use this surfbar!
64 redirectOnUninstalledExtension('surfbar');
65
66 // No member?
67 if (!isMember()) {
68         // Should we display login window or redirect to main page?
69         if ((getConfig('surfbar_guest_login_form') == 'Y') && (isExtensionActive('user'))) {
70                 // Is the form sent?
71                 if ((isFormSent()) && (isPostRequestParameterSet('id')) && (isPostRequestParameterSet('password'))) {
72                         // Do the login procedure
73                         $URL = doUserLogin(postRequestParameter('id'), postRequestParameter('password'), basename(__FILE__), basename(__FILE__) . '?code=');
74
75                         // And redirect to the URL
76                         redirectToUrl($URL);
77                 } else {
78                         // Load header
79                         loadIncludeOnce('inc/header.php');
80
81                         // Is there a 'code' provided?
82                         if (isGetRequestParameterSet('code')) {
83                                 // Then generate an error message
84                                 loadTemplate('admin_settings_saved', false, getMessageFromErrorCode(getRequestParameter('code')));
85                         } // END - if
86
87                         // Display login form
88                         loadTemplate('surfbar_login_form');
89
90                         // Allow footer here
91                         $GLOBALS['header_sent'] = 2;
92
93                         // Load footer
94                         loadIncludeOnce('inc/footer.php');
95                 }
96         } else {
97                 // Redirect
98                 redirectToUrl('modules.php?module=index');
99         }
100 } // END - if
101
102 // Initialize the surfbar
103 SURFBAR_INIT();
104
105 // Handle tasks on self-maintenance
106 SURFBAR_HANDLE_SELF_MAINTENANCE();
107
108 // Is there a check value?
109 if ((SURFBAR_CHECK_RELOAD_FULL()) || ((isGetRequestParameterSet('frame')) && (in_array(getRequestParameter('frame'), array('stop', 'stop2', 'stats', 'textlinks'))))) {
110         // Reload-lock is full, surfbar stopped so...
111         // Load header
112         loadIncludeOnce('inc/header.php');
113
114         // Load template
115         if (((isGetRequestParameterSet('frame')) && (getRequestParameter('frame') == 'stop2')) || (!isGetRequestParameterSet('frame'))) {
116                 // Load template for "start" page
117                 loadTemplate('surfbar_frame_start');
118
119                 // Load banner
120                 loadTemplate('surfbar_start_banner');
121
122                 // This makes the footer appear again
123                 unsetGetRequestParameter('frame');
124         } elseif ((isGetRequestParameterSet('frame')) && (getRequestParameter('frame') == 'stats')) {
125                 // Get total points amount
126                 $points = countSumTotalData(getMemberId(), 'user_points', 'points') - countSumTotalData(getMemberId(), 'user_data', 'used_points');
127
128                 // Prepare content
129                 $content = array(
130                         'points'   => translateComma($points),
131                         'online'   => SURFBAR_DETERMINE_TOTAL_ONLINE(),
132                         'reload'   => (getConfig('surfbar_stats_reload') * 1000),
133                         'c_total'  => translateComma(getConfig('surfbar_total_counter')),
134                         'c_today'  => translateComma(getConfig('surfbar_daily_counter')),
135                         'c_yester' => translateComma(getConfig('surfbar_yester_counter')),
136                         'c_week'   => translateComma(getConfig('surfbar_weekly_counter')),
137                         'c_month'  => translateComma(getConfig('surfbar_monthly_counter')),
138                 );
139
140                 // Load template for "stats" page
141                 loadTemplate('surfbar_frame_stats', false, $content);
142         } elseif ((isGetRequestParameterSet('frame')) && (getRequestParameter('frame') == 'textlinks')) {
143                 // Prepare content
144                 $content = array(
145                         'online'   => SURFBAR_DETERMINE_TOTAL_ONLINE(),
146                         'reload'   => (getConfig('surfbar_stats_reload') * 1000)
147                 );
148
149                 // Load template for "stats" page
150                 loadTemplate('surfbar_frame_textlinks', false, $content);
151         } else {
152                 // Prepare content
153                 $content = array(
154                         'start'     => str_repeat('X', strlen(getConfig('surfbar_restart_time'))),
155                         'autostart' => (getConfig('surfbar_autostart') == 'Y') ? 'true' : 'false'
156                 );
157
158                 // Load template for stopped surfbar
159                 loadTemplate('surfbar_stopped', false, $content);
160         }
161 } elseif ((isGetRequestParameterSet('check')) && (isGetRequestParameterSet('id')) && (isGetRequestParameterSet('salt'))) {
162         // Dummy next id get
163         SURFBAR_DETERMINE_NEXT_ID(getRequestParameter('id'));
164
165         // Check reload lock and validation code
166         if ((!SURFBAR_CHECK_RELOAD_LOCK(getRequestParameter('id'))) && (SURFBAR_CHECK_VALIDATION_CODE(getRequestParameter('id'), getRequestParameter('check'), getRequestParameter('salt')))) {
167                 // Lock the URL (id) down
168                 SURFBAR_LOCKDOWN_ID(getRequestParameter('id'));
169
170                 // Code is valid so pay points here
171                 SURFBAR_PAY_POINTS();
172
173                 // Check if reload is full
174                 if (SURFBAR_CHECK_RELOAD_FULL()) {
175                         // Then load waiting page
176                         SURFBAR_RELOAD_TO_STOP_PAGE();
177                 } // END - if
178         } else {
179                 // Reload to stop frame!
180                 SURFBAR_RELOAD_TO_STOP_PAGE();
181         }
182
183         // All done, so fix notice for footer.php
184         $GLOBALS['footer_sent'] = 1;
185 } else {
186         // Prepare content
187         $content = '';
188
189         // Determine template name
190         $templateName = SURFBAR_DETERMINE_TEMPLATE_NAME();
191
192         // Load header in frameset mode is the default
193         $isFrameset = true;
194
195         // Frame "top" set?
196         if ((isGetRequestParameterSet('frame')) && (getRequestParameter('frame') == 'top')) {
197                 // Determine next id
198                 $nextId = SURFBAR_DETERMINE_NEXT_ID();
199
200                 // Is there a valid id?
201                 if ($nextId > 0) {
202                         // Then prepare other content
203                         $content = array(
204                                 'id'          => $nextId,
205                                 'check'       => SURFBAR_GENERATE_VALIDATION_CODE($nextId),
206                                 'salt'        => SURFBAR_GET_SALT(),
207                                 'reward'      => translateComma(SURFBAR_GET_REWARD($nextId)),
208                                 'url'         => SURFBAR_GET_URL($nextId),
209                                 'curr_reload' => SURFBAR_GET_USER_LOCKS(),
210                                 'max_urls'    => SURFBAR_GET_TOTAL_URLS(),
211                                 'reload'      => SURFBAR_GET_RELOAD_TIME($nextId),
212                                 'xxx'         => str_repeat('X', strlen(SURFBAR_GET_RELOAD_TIME($nextId)))
213                         );
214
215                         // Update salt (double-call lock!) and statistics
216                         SURFBAR_UPDATE_SALT_STATS();
217                 } else {
218                         // Load new URL
219                         SURFBAR_RELOAD_TO_STOP_PAGE('stop');
220                 }
221         } elseif ((isGetRequestParameterSet('frame')) && (getRequestParameter('frame') == 'start')) {
222                 // Starter frame found so let the footer display
223                 unsetGetRequestParameter('frame');
224         }
225
226         // Load header
227         loadIncludeOnce('inc/header.php');
228
229         // Load that template
230         //* DEBUG: */ die("templateName={$templateName}<br />\n<strong>content</strong>=<pre>".print_r($content, true)."</pre>");
231         loadTemplate($templateName, false, $content);
232 }
233
234 // Load footer
235 $GLOBALS['footer_sent'] = 3;
236 loadIncludeOnce('inc/footer.php');
237
238 // [EOF]
239 ?>