Several bugfixes/improvements: (again)
[mailer.git] / surfbar.php
index 3bfe6552794ce3ba8d39242a91c887bb570e4c85..68b6d387077b37f7b493fc662cce3bd9027f64aa 100644 (file)
@@ -35,8 +35,8 @@
 require_once("inc/libs/security_functions.php");
 
 // Init "action" and "what"
-global $what, $action, $startTime, $SURFBAR_DATA;
-$SURFBAR_DATA = array();
+global $what, $action, $startTime, $SURFBAR_CACHE;
+$SURFBAR_CACHE = array();
 $GLOBALS['startTime'] = microtime(true);
 $GLOBALS['what'] = ""; $GLOBALS['action'] = "";
 
@@ -47,39 +47,101 @@ $CSS = 0;
 $msg = null;
 
 // Load the required file(s)
-require ("inc/config.php");
+require("inc/config.php");
 
 // Is the script installed?
-if (defined('mxchange_installed') && (isBooleanConstantAndTrue('mxchange_installed'))) {
+if (isBooleanConstantAndTrue('mxchange_installed')) {
        // Only logged in users may use this surfbar!
-       if (!IS_LOGGED_IN()) {
+       if (!EXT_IS_ACTIVE("surfbar")) {
+               // Surfbar deactivated
+               LOAD_URL(URL."/modules.php?module=login&msg=".CODE_EXTENSION_PROBLEM."&ext=surfbar");
+       } elseif (!IS_MEMBER()) {
                // Redirect
                LOAD_URL(URL."/modules.php?module=index");
-       } // END - if
+       }
+
+       // Handle tasks on self-maintenance
+       SURFBAR_HANDLE_SELF_MAINTENANCE();
 
        // Is there a check value?
-       if ((isset($_GET['check'])) && (isset($_GET['id'])) && (isset($_GET['salt']))) {
+       if ((SURFBAR_CHECK_RELOAD_FULL()) || ((isset($_GET['frame'])) && (in_array($_GET['frame'], array("stop", "stop2", "stats", "textlinks"))))) {
+               // Reload-lock is full, surfbar stopped so...
+               // Load header
+               require_once(PATH."inc/header.php");
+
+               // Load template
+               if (((isset($_GET['frame'])) && ($_GET['frame'] == "stop")) || (!isset($_GET['frame']))) {
+                       // Load template for "start" page
+                       LOAD_TEMPLATE("surfbar_frame_start");
+
+                       // Load banner
+                       OUTPUT_HTML("<br />");
+                       LOAD_TEMPLATE("surfbar_start_banner");
+
+                       // This makes the footer appear again
+                       unset($_GET['frame']);
+               } elseif ((isset($_GET['frame'])) && ($_GET['frame'] == "stats")) {
+                       // Get total points amount
+                       $points = GET_TOTAL_DATA($GLOBALS['userid'], "user_points", "points") - GET_TOTAL_DATA($GLOBALS['userid'], "user_data", "used_points");
+
+                       // Prepare content
+                       $content = array(
+                               'points'   => TRANSLATE_COMMA($points),
+                               'online'   => SURFBAR_DETERMINE_TOTAL_ONLINE(),
+                               'reload'   => (getConfig('surfbar_stats_reload') * 1000),
+                               'c_total'  => TRANSLATE_COMMA(getConfig('surfbar_total_counter')),
+                               'c_today'  => TRANSLATE_COMMA(getConfig('surfbar_daily_counter')),
+                               'c_yester' => TRANSLATE_COMMA(getConfig('surfbar_yester_counter')),
+                               'c_week'   => TRANSLATE_COMMA(getConfig('surfbar_weekly_counter')),
+                               'c_month'  => TRANSLATE_COMMA(getConfig('surfbar_monthly_counter')),
+                       );
+
+                       // Load template for "stats" page
+                       LOAD_TEMPLATE("surfbar_frame_stats", false, $content);
+               } elseif ((isset($_GET['frame'])) && ($_GET['frame'] == "textlinks")) {
+                       // Prepare content
+                       $content = array(
+                               'online'   => SURFBAR_DETERMINE_TOTAL_ONLINE(),
+                               'reload'   => (getConfig('surfbar_stats_reload') * 1000)
+                       );
+
+                       // Load template for "stats" page
+                       LOAD_TEMPLATE("surfbar_frame_textlinks", false, $content);
+               } else {
+                       // Prepare content
+                       $content = array(
+                               'restart'   => getConfig('surfbar_restart_time'),
+                               'start'     => str_repeat("X", strlen(getConfig('surfbar_restart_time'))),
+                               'autostart' => (getConfig('surfbar_autostart') == "Y") ? "true" : "false"
+                       );
+
+                       // Load template for stopped surfbar
+                       LOAD_TEMPLATE("surfbar_stopped", false, $content);
+               }
+       } elseif ((isset($_GET['check'])) && (isset($_GET['id'])) && (isset($_GET['salt']))) {
                // Dummy next id get
-               SURFBAR_GET_NEXT_ID($_GET['id']);
+               SURFBAR_DETERMINE_NEXT_ID($_GET['id']);
 
-               // Check validation code
-               if (SURFBAR_CHECK_VALIDATION_CODE($_GET['id'], $_GET['check'], $_GET['salt'])) {
+               // Check reload lock and validation code
+               if ((!SURFBAR_CHECK_RELOAD_LOCK($_GET['id'])) && (SURFBAR_CHECK_VALIDATION_CODE($_GET['id'], $_GET['check'], $_GET['salt']))) {
                        // Lock the URL (id) down
                        SURFBAR_LOCKDOWN_ID($_GET['id']);
 
                        // Code is valid so pay points here
-                       SURFBAR_PAY_POINTS($_GET['id']);
-               } // END - if
+                       SURFBAR_PAY_POINTS();
 
-               // Set footer (fixes notice)
-               $footer = 1;
-       } elseif (SURFBAR_CHECK_RELOAD_FULL()) {
-               // Reload-lock is full, surfbar stopped so...
-               // Load header
-               require_once(PATH."inc/header.php");
+                       // Check if reload is full
+                       if (SURFBAR_CHECK_RELOAD_FULL()) {
+                               // Then load waiting page
+                               SURFBAR_RELOAD_TO_STOP_PAGE();
+                       } // END - if
+               } else {
+                       // Reload to stop frame!
+                       SURFBAR_RELOAD_TO_STOP_PAGE();
+               }
 
-               // Load template
-               LOAD_TEMPLATE("surfbar_stopped");
+               // All done, so fix notice for footer.php
+               $footer = 1;
        } else {
                // Prepare content
                $content = "";
@@ -90,7 +152,7 @@ if (defined('mxchange_installed') && (isBooleanConstantAndTrue('mxchange_install
                // Frame "top" set?
                if ((isset($_GET['frame'])) && ($_GET['frame'] == "top")) {
                        // Determine next id
-                       $nextId = SURFBAR_GET_NEXT_ID();
+                       $nextId = SURFBAR_DETERMINE_NEXT_ID();
 
                        // Is there a valid id?
                        if ($nextId > 0) {
@@ -98,20 +160,24 @@ if (defined('mxchange_installed') && (isBooleanConstantAndTrue('mxchange_install
                                $content = array(
                                        'id'          => $nextId,
                                        'check'       => SURFBAR_GENERATE_VALIDATION_CODE($nextId),
-                                       'salt'        => $SURFBAR_DATA['salt'],
+                                       'salt'        => SURFBAR_GET_SALT(),
                                        'reward'      => TRANSLATE_COMMA(SURFBAR_GET_REWARD($nextId)),
                                        'url'         => SURFBAR_GET_URL($nextId),
-                                       'curr_reload' => SURFBAR_GET_USER_RELOAD_LOCK(),
+                                       'curr_reload' => SURFBAR_GET_USER_LOCKS(),
                                        'max_urls'    => SURFBAR_GET_TOTAL_URLS(),
-                                       'reload'      => SURFBAR_GET_RELOAD_TIME($nextId)
-                       );
+                                       'reload'      => SURFBAR_GET_RELOAD_TIME($nextId),
+                                       'xxx'         => str_repeat("X", strlen(SURFBAR_GET_RELOAD_TIME($nextId)))
+                               );
 
-                               // Update salt (double-call lock!)
-                               SURFBAR_UPDATE_SALT();
+                               // Update salt (double-call lock!) and statistics
+                               SURFBAR_UPDATE_SALT_STATS();
                        } else {
-                               // Change template name
-                               $templateName = "surfbar_stopped";
+                               // Load new URL
+                               SURFBAR_RELOAD_TO_STOP_PAGE("stop2");
                        }
+               } elseif ((isset($_GET['frame'])) && ($_GET['frame'] == "start")) {
+                       // Starter frame found so let the footer display
+                       unset($_GET['frame']);
                } else {
                        // Load header in frameset mode
                        $isFrameset = true;
@@ -121,6 +187,7 @@ if (defined('mxchange_installed') && (isBooleanConstantAndTrue('mxchange_install
                require_once(PATH."inc/header.php");
 
                // Load that template
+               //* DEBUG: */ die("templateName={$templateName}<br />\n<strong>content</strong>=<pre>".print_r($content, true)."</pre>");
                LOAD_TEMPLATE($templateName, false, $content);
        }
 
@@ -131,8 +198,5 @@ if (defined('mxchange_installed') && (isBooleanConstantAndTrue('mxchange_install
        LOAD_URL("install.php");
 }
 
-// Close any open database connection here
-SQL_CLOSE($link, __FILE__, __LINE__);
-
 // Really all done here... ;-)
 ?>