]> git.mxchange.org Git - mailer.git/commitdiff
- Notification mode added to surfbar (dummy!)
authorRoland Häder <roland@mxchange.org>
Thu, 25 Sep 2008 20:02:22 +0000 (20:02 +0000)
committerRoland Häder <roland@mxchange.org>
Thu, 25 Sep 2008 20:02:22 +0000 (20:02 +0000)
- View-limitation completed in surfbar
- Array $INC_POOL will now be deleted after it has been used
- Check for updated/newly added extensions removed (obsolete!)

18 files changed:
inc/autopurge.php
inc/check-reset.php
inc/databases.php
inc/extensions.php
inc/extensions/ext-surfbar.php
inc/language/surfbar_de.php
inc/libs/surfbar_functions.php
inc/load_cache.php
inc/load_extensions.php
inc/modules/admin/what-add_surfbar_url.php
inc/modules/admin/what-config_surfbar.php
inc/modules/admin/what-extensions.php
templates/de/emails/admin/admin_surfbar_url_reg.tpl
templates/de/emails/admin/admin_surfbar_url_unlock.tpl
templates/de/emails/member/member_surfbar_url_reg.tpl
templates/de/emails/member/member_surfbar_url_unlock.tpl
templates/de/html/admin/admin_add_surfbar_url.tpl
templates/de/html/admin/admin_config_surfbar.tpl

index f3b1af8477fb5d2ab76add04b6475032c1e8e782..b312634738900081d372ac212bc97127dbd1a128 100644 (file)
@@ -46,6 +46,9 @@ foreach ($INC_POOL as $fqfn) {
        require_once($fqfn);
 } // END - foreach
 
+// Remove array
+unset($INC_POOL);
+
 if (EXT_IS_ACTIVE("rallye")) {
        // Check expired rallyes (hard-coded 3 days limit for displaying expired rallyes!)
        require_once(PATH."inc/libs/rallye_functions.php");
index 1b348a97c7cd1285cd78cffa606ccb4e15060290..ec19cb89525db351018557dda88790eb0c18faef 100644 (file)
@@ -59,6 +59,9 @@ if ((date("d", $_CONFIG['last_update']) != date("d", time())) && (!defined('mxch
        foreach ($INC_POOL as $incFile) {
                require_once($incFile);
        } // END - foreach
+
+       // Remove array
+       unset($INC_POOL);
 } // END - if
 
 //
index d2fd859d8cd06041f8656286f5f6e38b196de01b..2972c2299563d5829fa8b4000260edca84b6df92 100644 (file)
@@ -113,7 +113,7 @@ define('USAGE_BASE', "usage");
 define('SERVER_URL', "http://www.mxchange.org");
 
 // This current patch level
-define('CURR_SVN_REVISION', "391");
+define('CURR_SVN_REVISION', "392");
 
 // Take a prime number which is long (if you know a longer one please try it out!)
 define('_PRIME', 591623);
index b480c0e5a49c4d5b016ce7330b51cc3729bd2752..0e2b92430e05342bc32d3b64cd3b137465968df9 100644 (file)
@@ -186,6 +186,9 @@ function EXTENSION_REGISTER ($ext_name, $id, $dry_run=false)
                                        foreach ($INC_POOL as $inc) {
                                                require_once($inc);
                                        } // END - foreach
+
+                                       // Remove array
+                                       unset($INC_POOL);
                                } // END - if
 
                                // Register extension
index 80ff6e7e9897444c4fcab49c0d2262da35e535f8..91a96b47ec34edadcdaea7726703cb281cfd1b2d 100644 (file)
@@ -162,7 +162,9 @@ INDEX (`status`)
        $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `surfbar_pause_url` VARCHAR(255) NOT NULL DEFAULT ''";
        $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `surfbar_notify_limits` ENUM('Y','N') NOT NULL DEFAULT 'Y'";
        $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `surfbar_warn_low_points` BIGINT(20) NOT NULL DEFAULT 100";
+       $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `surfbar_low_interval` BIGINT(20) NOT NULL DEFAULT ".$_CONFIG['one_day']."";
        $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `surfbar_migrate_order` ENUM('Y','N') NOT NULL DEFAULT 'Y'";
+       $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `surfbar_notification_mode` ENUM('INSTANT','RESET') NOT NULL DEFAULT 'INSTANT'";
 
        // Extend user data
        $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` ADD `surfbar_low_notified` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'";
index d76db8f08c8320f818a039accf3fb0a07ce1a19b..c9a6b65beb11fd8fa145f6584911e5578e6348cb 100644 (file)
@@ -61,6 +61,10 @@ define('ADMIN_CONFIG_SURFBAR_PAUSE_URL', "Externe Pausenseite (leer lassen, wenn
 define('ADMIN_CONFIG_SURFBAR_NOTIFY_LIMITS', "Soll das Mitglied per Mail benachrichtigt werden, wenn aufrufbegrenzte URLs abgelaufen und auf &quot;pausierend&quot; gesetzt sind?");
 define('ADMIN_CONFIG_SURFBAR_WARN_LOW_POINTS', "Mitglied warnen, wenn {!POINTS!}-Guthaben unterschritten ist: (0=keine Warnung aussenden)");
 define('ADMIN_CONFIG_SURFBAR_MIGRATE_ORDER', "Sollen URLs aus Mailfreischaltungen in die Surfbar migriert werden?");
+define('ADMIN_CONFIG_SURFBAR_LOW_INTERVAL', "Wiederholungsinterval f&uuml;r Nachrichten wegen niedrigem {!POINTS!}-Guthaben:");
+define('ADMIN_CONFIG_SURFBAR_NOTIFICATION_MODE', "Benachrichtigungen sofort oder beim t&auml;g;lichen Reset aussenden? (&quot;Sofort&quot; kann zu Verz&ouml;gerungen und/oder Belastung des Servers f&uuml;hren!");
+define('ADMIN_CONFIG_SURFBAR_NOTIFICATION_MODE_INSTANT', "Sofort aussenden");
+define('ADMIN_CONFIG_SURFBAR_NOTIFICATION_MODE_RESET', "Beim t&auml;glichen Reset");
 
 // General admin text
 define('ADMIN_SURFBAR_NO_REF_LEVELS_FOUND', "Zur Zeit sind keine Referal-Ebenen f&uuml;r die Surfbar eingestellt.<br />\nBitte installieren Sie die Erweiterung <strong>surfbar</strong> neu.");
@@ -117,6 +121,7 @@ define('MEMBER_SURFBAR_TEST_URL', "URL anzeigen");
 define('MEMBER_SURFBAR_LIST_NOTE', "<strong>Hinweise:</strong> Bitte beachten Sie, dass Editieren, erneutes Aktivieren von gestoppten URLs und nochmalige Anmeldung nach Ablehnung eine Freischaltung durch unsere Administratoren n&ouml;tig ist. Migrierte URLs sind in der Surfbar nicht freigegeben und bedarfen einer Buchungsbest&auml;tigung (&quot;Jetzt buchen&quot; bitte dazu anklicken) Ihrerseits, da die Bewerbung Ihrer URL in der Surfbar zus&auml;tzliche {!POINTS!}-Kosten bedeuten. Die aktuellen Kosten entnehmen Sie bitte der Seite &quot;Surfbar starten&quot; oder &quot;URL buchen&quot; aus dem Surfbar-Mitgliedsmen&uuml;.");
 define('MEMBER_SURFBAR_ACTION_DONE', "Ausgew&auml;hlte Aktion ausgef&uuml;hrt.");
 define('MEMBER_SURFBAR_ACTION_FAILED', "Ausgew&auml;hlte Aktion konnte nicht vollst&auml;ndig ausgef&uuml;hrt werden!");
+define('MEMBER_SURFBAR_UNLIMITED_VIEWS', "Unbegrenzt");
 
 // Subject lines for admins
 define('ADMIN_SURFBAR_NOTIFY_URL_UNLOCK_SUBJECT', "[Surfbar:] URL hinzugef&uuml;gt durch Admin");
index bdc6cd749c177e0cced6d370078b6194327d633e..da1f944f503b10dea2f7ce8b4218828f0e4dbd86 100644 (file)
@@ -42,7 +42,7 @@ if (!defined('__SECURITY')) {
 // -----------------------------------------------------------------------------
 //
 // Admin has added an URL with given user id and so on
-function SURFBAR_ADMIN_ADD_URL ($url) {
+function SURFBAR_ADMIN_ADD_URL ($url, $limit) {
        // Do some pre-checks
        if (!IS_ADMIN()) {
                // Not an admin
@@ -56,10 +56,13 @@ function SURFBAR_ADMIN_ADD_URL ($url) {
        } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS()) {
                // No more allowed!
                return false;
+       } elseif ("".bigintval($limit)."" != "".$limit."") {
+               // Invalid amount entered
+               return false;
        }
 
        // Register the new URL
-       return SURFBAR_REGISTER_URL($url, "0", "ACTIVE", "unlock");
+       return SURFBAR_REGISTER_URL($url, "0", "ACTIVE", "unlock", $limit);
 }
 // Admin unlocked an email so we can migrate the URL
 function SURFBAR_ADMIN_MIGRATE_URL ($url, $uid) {
@@ -139,7 +142,7 @@ function SURFBAR_ADMIN_REJECT_URL_IDS ($IDs) {
 // -----------------------------------------------------------------------------
 //
 // Member has added an URL
-function SURFBAR_MEMBER_ADD_URL ($url) {
+function SURFBAR_MEMBER_ADD_URL ($url, $limit) {
        global $_CONFIG;
 
        // Do some pre-checks
@@ -155,10 +158,13 @@ function SURFBAR_MEMBER_ADD_URL ($url) {
        } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS($GLOBALS['userid'])) {
                // No more allowed!
                return false;
+       } elseif ("".bigintval($limit)."" != "".$limit."") {
+               // Invalid amount entered
+               return false;
        }
 
        // Register the new URL
-       return SURFBAR_REGISTER_URL($url, $GLOBALS['userid']);
+       return SURFBAR_REGISTER_URL($url, $GLOBALS['userid'], "PENDING", "reg", $limit);
 }
 // Create list of actions depending on status for the user
 function SURFBAR_MEMBER_ACTIONS ($urlId, $status) {
@@ -349,7 +355,7 @@ ORDER BY %s %s
        return $lastUrlData;
 }
 // Registers an URL with the surfbar. You should have called SURFBAR_LOOKUP_BY_URL() first!
-function SURFBAR_REGISTER_URL ($url, $uid, $status="PENDING", $addMode="reg") {
+function SURFBAR_REGISTER_URL ($url, $uid, $status="PENDING", $addMode="reg", $limit=0) {
        global $_CONFIG;
 
        // Make sure by the user registered URLs are always pending
@@ -360,14 +366,22 @@ function SURFBAR_REGISTER_URL ($url, $uid, $status="PENDING", $addMode="reg") {
                'url'         => $url,
                'frametester' => FRAMETESTER($url),
                'uid'         => $uid,
-               'status'      => $status
+               'status'      => $status,
+               'limit'       => $limit
        );
 
        // Insert the URL into database
        $content['insert_id'] = SURFBAR_INSERT_URL_BY_ARRAY($content);
 
-       // Translate status, reward and costs
+       // Is this ID valid?
+       if ($content['insert_id'] == 0) {
+               // INSERT did not insert any data!
+               return false;
+       } // END - if
+
+       // Translate status and limit
        $content['status'] = SURFBAR_TRANSLATE_STATUS($content['status']);
+       $content['limit'] = SURFBAR_TRANSLATE_LIMIT($content['limit']);
 
        // If in reg-mode we notify admin
        if (($addMode == "reg") || ($_CONFIG['surfbar_notify_admin_unlock'] == "Y")) {
@@ -390,11 +404,13 @@ function SURFBAR_INSERT_URL_BY_ARRAY ($urlData) {
        if (empty($uid)) $uid = 0;
 
        // Just run the insert query for now
-       SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_urls (userid, url, status) VALUES(%s, '%s', '%s')",
+       SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_surfbar_urls (userid,url,status,views_max,views_allowed) VALUES(%s,'%s','%s','%s','%s')",
                array(
                        $uid,
                        $urlData['url'],
-                       $urlData['status']
+                       $urlData['status'],
+                       $urlData['limit'],
+                       $urlData['limit']
                ), __FILE__, __LINE__
        );
 
@@ -443,6 +459,20 @@ function SURFBAR_NOTIFY_USER ($messageType, $content) {
        // Send the email
        return SEND_EMAIL($content['uid'], $subject, $mailText);
 }
+// Translates the limit
+function SURFBAR_TRANSLATE_LIMIT ($limit) {
+       // Is this zero?
+       if ($limit == 0) {
+               // Unlimited!
+               $return = MEMBER_SURFBAR_UNLIMITED_VIEWS;
+       } else {
+               // Translate comma
+               $return = TRANSLATE_COMMA($limit);
+       }
+
+       // Return value
+       return $return;
+}
 // Translate the URL status
 function SURFBAR_TRANSLATE_STATUS ($status) {
        // Create constant name
@@ -737,8 +767,20 @@ function SURFBAR_PAY_POINTS ($urlId) {
 function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
        global $_CONFIG;
 
-       // Update views_total
-       SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET views_total=views_total+1 WHERE id=%s LIMIT 1",
+       // Init add
+       $ADD = "";
+
+       // Get allowed views
+       $allowed = SURFBAR_GET_ALLOWED_VIEWS();
+
+       // Do we have a limit?
+       if ($allowed > 0) {
+               // Then count views_max down!
+               $ADD .= ",views_max=views_max-1";
+       } // END - if
+
+       // Update URL stats
+       SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET views_total=views_total+1".$ADD." WHERE id=%s LIMIT 1",
                array(SURFBAR_GET_ID()), __FILE__, __LINE__);
 
        // Update the stats entry
@@ -1200,7 +1242,7 @@ function SURFBAR_DETERMINE_NEXT_ID ($urlId = 0) {
 
                // And query the database
                //DEBUG_LOG(__FUNCTION__.":randNum={$randNum},maxRand={$maxRand},surfLock=".SURFBAR_GET_DATA('surf_lock')."");
-               $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.reward, sbu.costs, sbu.views_total, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed
+               $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.reward, sbu.costs, sbu.views_total, sbu.views_max, sbu.views_allowed, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed
 FROM "._MYSQL_PREFIX."_surfbar_urls AS sbu
 LEFT JOIN "._MYSQL_PREFIX."_surfbar_salts AS sbs
 ON sbu.id=sbs.url_id
@@ -1214,7 +1256,7 @@ LIMIT %s,1",
                );
        } else {
                // Get data from specified id number
-               $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.reward, sbu.costs, sbu.views_total, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed
+               $result = SQL_QUERY_ESC("SELECT sbu.id, sbu.userid, sbu.url, sbs.last_salt, sbu.reward, sbu.costs, sbu.views_total, sbu.views_max, sbu.views_allowed, UNIX_TIMESTAMP(l.last_surfed) AS last_surfed
 FROM "._MYSQL_PREFIX."_surfbar_urls AS sbu
 LEFT JOIN "._MYSQL_PREFIX."_surfbar_salts AS sbs
 ON sbu.id=sbs.url_id
@@ -1342,5 +1384,10 @@ function SURFBAR_GET_RELOAD_TIME () {
        // Get data element and return its contents
        return SURFBAR_GET_DATA('time');
 }
+// Getter for allowed views
+function SURFBAR_GET_ALLOWED_VIEWS () {
+       // Get data element and return its contents
+       return SURFBAR_GET_DATA('views_allowed');
+}
 //
 ?>
index f97f04d471ae121341a242e6a2156374aee6d4b4..fad1bdde22d6912a7c3740fb78e8984210b66e9b 100644 (file)
@@ -46,5 +46,8 @@ foreach ($INC_POOL as $fqfn) {
        require_once($fqfn);
 } // END - foreach
 
+// Remove array
+unset($INC_POOL);
+
 //
 ?>
index 4a7015304512b2d0b9dd5d9a156ddacae73118a2..f804ae6baf432de38bee76b823bffd488ccc387a 100644 (file)
@@ -280,11 +280,14 @@ if ((SQL_NUMROWS($res_ext_crt) > 0) && (($cacheMode == "init") || ($cacheMode ==
        SQL_FREERESULT($res_ext_crt);
 }
 
-// Load include files
+// Load include files if found
 if (!empty($INC_POOL[0])) {
        foreach ($INC_POOL as $inc) {
                require_once($inc);
        } // END - foreach
+
+       // Remove array
+       unset($INC_POOL);
 } // END - if
 
 // Uninstall extensions that are no longer in our system
index 93c63c81b3cd4b303efa22ae8018b339957f982b..b3f5bf317580515ba2574a2fbfc4302ed032ab09 100644 (file)
@@ -43,7 +43,7 @@ ADD_DESCR("admin", basename(__FILE__));
 // Was an URL added?
 if ((isset($_POST['add'])) && (!empty($_POST['url']))) {
        // Then add this URL
-       if (SURFBAR_ADMIN_ADD_URL($_POST['url'])) {
+       if (SURFBAR_ADMIN_ADD_URL($_POST['url'], $_POST['limit'])) {
                // URL was added
                LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_SURFBAR_URL_ADDED);
        } else {
index 0a3eb8bc07198fdb13f63909aed12d5251ea798d..f48676718269975bfc4e0a7ee0bee4bfdc9ab54d 100644 (file)
@@ -68,7 +68,9 @@ if (isset($_POST['ok'])) {
                // @TODO Rewrite this to tiny selection boxes
                'surfbar_purge_migrated'  => $_CONFIG['surfbar_purge_migrated'],
                'surfbar_pause_url'       => $_CONFIG['surfbar_pause_url'],
-               'surfbar_warn_low_points' => $_CONFIG['surfbar_warn_low_points']
+               'surfbar_warn_low_points' => $_CONFIG['surfbar_warn_low_points'],
+               // @TODO Rewrite this to tiny selection boxes
+               'surfbar_low_interval'    => $_CONFIG['surfbar_low_interval'],
        );
 
        // Prepare payment model for template
@@ -85,33 +87,33 @@ if (isset($_POST['ok'])) {
        // Prepare auto-sart
        if ($_CONFIG['surfbar_autostart'] == "Y") {
                // Yes selected
-               define('__CONFIG_SURFBAR_AUTOSTART_Y' , " checked=\"checked\"");
+               define('__CONFIG_SURFBAR_AUTOSTART_Y', " checked=\"checked\"");
                define('__CONFIG_SURFBAR_AUTOSTART_N', "");
        } else {
                // No selected
-               define('__CONFIG_SURFBAR_AUTOSTART_Y' , "");
+               define('__CONFIG_SURFBAR_AUTOSTART_Y', "");
                define('__CONFIG_SURFBAR_AUTOSTART_N', " checked=\"checked\"");
        }
 
        // Prepare notify limits
        if ($_CONFIG['surfbar_notify_limits'] == "Y") {
                // Yes selected
-               define('__CONFIG_SURFBAR_NOTIFY_LIMITS_Y' , " checked=\"checked\"");
+               define('__CONFIG_SURFBAR_NOTIFY_LIMITS_Y', " checked=\"checked\"");
                define('__CONFIG_SURFBAR_NOTIFY_LIMITS_N', "");
        } else {
                // No selected
-               define('__CONFIG_SURFBAR_NOTIFY_LIMITS_Y' , "");
+               define('__CONFIG_SURFBAR_NOTIFY_LIMITS_Y', "");
                define('__CONFIG_SURFBAR_NOTIFY_LIMITS_N', " checked=\"checked\"");
        }
 
        // Prepare order migration
        if ($_CONFIG['surfbar_migrate_order'] == "Y") {
                // Yes selected
-               define('__CONFIG_SURFBAR_MIGRATE_ORDER_Y' , " checked=\"checked\"");
+               define('__CONFIG_SURFBAR_MIGRATE_ORDER_Y', " checked=\"checked\"");
                define('__CONFIG_SURFBAR_MIGRATE_ORDER_N', "");
        } else {
                // No selected
-               define('__CONFIG_SURFBAR_MIGRATE_ORDER_Y' , "");
+               define('__CONFIG_SURFBAR_MIGRATE_ORDER_Y', "");
                define('__CONFIG_SURFBAR_MIGRATE_ORDER_N', " checked=\"checked\"");
        }
 
@@ -126,6 +128,17 @@ if (isset($_POST['ok'])) {
                define('__CONFIG_SURFBAR_PAUSE_MODE_EXTERNAL', " checked=\"checked\"");
        }
 
+       // Notification mode
+       if ($_CONFIG['surfbar_notification_mode'] == "INSTANT") {
+               // Instant notification
+               define('__CONFIG_SURFBAR_NOTIFICATION_MODE_INSTANT', " selected=\"selected\"");
+               define('__CONFIG_SURFBAR_NOTIFICATION_MODE_RESET'  , "");
+       } else {
+               // Only daily reset
+               define('__CONFIG_SURFBAR_NOTIFICATION_MODE_INSTANT', "");
+               define('__CONFIG_SURFBAR_NOTIFICATION_MODE_RESET'  , " selected=\"selected\"");
+       }
+
        // Load template
        LOAD_TEMPLATE("admin_config_surfbar", false, $content);
 }
index a8181f2999675750fbd1b211011c091c21f555bc..e81f62f2496d6fe7260927dcd692c78eb4b044ce 100644 (file)
@@ -276,8 +276,6 @@ case "overview": // List all registered extensions
                // No extensions are registered
                LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_NO_EXTENSION_REGISTERED."</FONT>");
        }
-       // Link for checking for new or updated extensions
-       OUTPUT_HTML("<br /><A href=\"".URL."/modules.php?module=admin&amp;what=extensions&amp;do=search\">".ADMIN_SEARCH_NEW_EXTENSIONS."</A>");
        break;
 
 case "register": // Register new extension
@@ -335,126 +333,6 @@ case "register": // Register new extension
        }
        break;
 
-case "search": // Search for new extensions on our server
-       // Get response from our server
-       $response = GET_URL("extensions.php");
-
-       // Are extensions found?
-       if (($response[sizeof($response) - 1] == "[EOF]") && ($response[0] != "[EOF]"))
-       {
-               // Ok, mark found and create the array
-               $EXT_SEARCH = array(
-                       'fname'  => array(), // File names
-                       'fsize'  => array(), // File size
-                       'fctime' => array(), // File creation timestamp
-                       'infos'  => array(), // File informations (maybe loaded!)
-                       'ver'    => array(), // Version number
-                       'cver'   => array(), // Current version number
-               );
-
-               // Get count of extensions for validation
-               $count = trim($response[sizeof($response) - 2]);
-               foreach ($response as $id => $value)
-               {
-                       $value = str_replace("\n", "", $value); $ver = "";
-                       // Leave loop when data is invalid or EOF?
-                       if ((substr($value, 0, 4) == "ext-") && (substr($value, -4) == ".zip"))
-                       {
-                               $name = substr($value, 4, -4);
-                               $file = sprintf("%sinc/extensions/ext-%s.php", PATH, $name);
-                               $ver = trim(substr($response[$id + 3], 4));
-
-                               // Load current extension's version
-                               $cver = GET_EXT_VERSION($name);
-                               if (empty($cver)) $cver = "-.-";
-
-                               // Is the extension already installed or not?
-                               if (!FILE_READABLE($file) || ($ver != $cver))
-                               {
-                                       // No, it isn't. So let's add this one!
-                                       $EXT_SEARCH['fname'][]  = $name;
-                                       $EXT_SEARCH['fsize'][]  = $response[$id + 1];
-                                       $EXT_SEARCH['fctime'][] = $response[$id + 2];
-                                       $EXT_SEARCH['ver'][]    = $ver;
-                                       $EXT_SEARCH['cver'][]   = $cver;
-
-                                       $LANG_DUMMY = explode("[nl]", $response[$id + 4]);
-                                       $LANG = array();
-                                       $INFO = ADMIN_EXT_NO_INFO_FOUND;
-
-                                       // Trim every data line
-                                       foreach ($LANG_DUMMY as $k => $v)
-                                       {
-                                               $v = trim($v);
-                                               if (substr($v, 3) == "") $v = "---";
-                                               $LANG_DUMMY[$k] = $v;
-                                               if ($v == "xx:xx") break;
-                                               $LANG[] = $v;
-                                       }
-
-                                       // If language is found stop searching on matching line
-                                       foreach($LANG as $search)
-                                       {
-                                               if (substr($search, 0, 3) == (GET_LANGUAGE().":")) { $INFO = substr($search, 3); break; }
-                                       }
-
-                                       // Add informations to array
-                                       $EXT_SEARCH['infos'][] = $INFO;
-                               }
-                       }
-               }
-
-               // Ok, extensions are on our server but maybe you have already installed them?
-               if (sizeof($EXT_SEARCH['fname']) > 0)
-               {
-                       // Sort array (I missed ver and cver here)
-                       array_pk_sort($EXT_SEARCH, array("cver", "fname"), 0, 1);
-
-                       // Extensions where found which are not downloaded and installed
-                       $SW = 2; $OUT = ""; $TSIZE = 0;
-                       foreach ($EXT_SEARCH['fname'] as $id => $name)
-                       {
-                               // Generate download link
-                               $LINK = SERVER_URL."/extensions/ext-".$name.".zip";
-
-                               // Prepare data for the row template
-                               $content = array(
-                                       'sw'      => $SW,
-                                       'id'      => ($id + 1),
-                                       'name'    => $name,
-                                       'new_ver' => $EXT_SEARCH['ver'][$id],
-                                       'old_ver' => $EXT_SEARCH['cver'][$id],
-                                       'link'    => $LINK,
-                                       'last'    => MAKE_DATETIME($EXT_SEARCH['fctime'][$id], "2"),
-                                       'size'    => TRANSLATE_COMMA(round($EXT_SEARCH['fsize'][$id] / 1.024) / 1000),
-                                       'info'    => $EXT_SEARCH['infos'][$id],
-                               );
-
-                               // Load row template add current size to total size and switch color
-                               $OUT .= LOAD_TEMPLATE("admin_list_extensions_row", true, $content);
-                               $TSIZE += $EXT_SEARCH['fsize'][$id];
-                               $SW = 3 - $SW;
-                       }
-                       define('__EXTENSIONS_ROWS', $OUT);
-                       define('__TKBYTES_VALUE', TRANSLATE_COMMA(round($TSIZE / 1.024) / 1000));
-                       define('__TEXT_VALUE', sizeof($EXT_SEARCH['fname']));
-
-                       // Load template
-                       LOAD_TEMPLATE("admin_list_extensions");
-               }
-                else
-               {
-                       // All extensions are downloaded and installed
-                       LOAD_TEMPLATE("admin_extensions_installed", false, $count);
-               }
-       }
-        else
-       {
-               // No extensions where found
-               LOAD_TEMPLATE("admin_extensions_404");
-       }
-       break;
-
 case "demo":
        LOAD_TEMPLATE("admin_settings_saved", false, SETTINGS_NOT_SAVED);
        break;
index eb593b21733b82cfad9eeeb5381a6c2eda64959f..779163bacafcf54af7a56a582aca42c1e4b04847 100644 (file)
@@ -13,6 +13,8 @@ $content[frametester]
 ------------------------------------------
 User-ID: $content[uid]
 ------------------------------------------
+Anzahl Aufrufe: $content[limit]
+------------------------------------------
 Status: $content[status]
 ------------------------------------------
 ID in der Surfbar: $content[insert_id]
index ed38b6744a77982e28883baf775165ffd31655d1..19617c2ae4c4d285c9afb3a0c1e9707f672cea1b 100644 (file)
@@ -11,6 +11,8 @@ $content[frametester]
 ------------------------------------------
 Status: $content[status]
 ------------------------------------------
+Anzahl Aufrufe: $content[limit]
+------------------------------------------
 ID in der Surfbar: $content[insert_id]
 ------------------------------------------
 
index 67f6457b488c058165097ea1d836f4fd2da5035c..8c44ccef221dfcd0c0f5843747152ce9fdfc5b5d 100644 (file)
@@ -8,6 +8,8 @@ Gebuchte URL: $content[url]
 ------------------------------------------
 Ihre User-ID: $content[uid]
 ------------------------------------------
+Anzahl Aufrufe: $content[limit]
+------------------------------------------
 Status: $content[status]
 ------------------------------------------
 ID in der Surfbar: $content[insert_id]
index 320dfcd09f56f641c149b4f16e08bfd3e4d988f2..9a16795c6cfcc105e852f0e32d3d566b081368a4 100644 (file)
@@ -10,6 +10,8 @@ Ihre User-ID: $content[uid]
 ------------------------------------------
 Status: $content[status]
 ------------------------------------------
+Anzahl Aufrufe: $content[limit]
+------------------------------------------
 ID in der Surfbar: $content[insert_id]
 ------------------------------------------
 
index 16a26063f5d7ac2808eda6edeaf56b373f835c1f..17155247a431d82d905c26da2e70278ea3488837 100644 (file)
@@ -8,6 +8,11 @@
                URL eingeben: <input type="text" name="url" size="20" maxlength="255" value="http://" />
        </div>
 
+       <div class="admin_input" style="padding-top:5px;padding-bottom:5px" align="center">
+               Maximale Einblendung: <input type="text" name="limit" size="5" maxlength="20" value="0" /><br />
+               <span class="admin_note">(0 = Unbegrenzt)</span>
+       </div>
+
        <div class="admin_title top2" style="padding-top:3px;padding-bottom:3px">
                <input type="reset" class="admin_reset" value="{--CLEAR_FORM--}" />&nbsp;*
                <input type="submit" class="admin_submit" name="add" value="{--ADMIN_SURFBAR_ADD_URL--}" />
index ced6bea0d588d8a9f6af3bdacbe789937c3eea04..3337b1fc3ab362d018123594b0e4434f0bd86886 100644 (file)
-<FORM action="{!URL!}/modules.php?module=admin&amp;what=config_surfbar" method="POST">
-<TABLE border="0" cellspacing="0" cellpadding="0" width="500" class="admin_table dashed" align="center">
-       <TR>
-               <TD colspan="2" align="center" class="admin_title bottom2" height="30">
+<form action="{!URL!}/modules.php?module=admin&amp;what=config_surfbar" method="POST">
+<table border="0" cellspacing="0" cellpadding="0" width="500" class="admin_table dashed" align="center">
+       <tr>
+               <td colspan="2" align="center" class="admin_title bottom2" height="30">
                        <STRONG>{--ADMIN_CONFIG_SURFBAR_TITLE--}</STRONG>
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD width="70%" height="30" align="right" style="padding-right:5px">
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td width="70%" height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_STATIC_REWARD--}
-               </TD>
-               <TD width="30%">
-                       <INPUT type="text" name="surfbar_static_reward" size="6" maxlength="20" value="$content[surfbar_static_reward]" /> {!POINTS!}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td width="30%">
+                       <input type="text" name="surfbar_static_reward" size="6" maxlength="20" value="$content[surfbar_static_reward]" /> {!POINTS!}
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_STATIC_COSTS--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_static_costs" size="6" maxlength="20" value="$content[surfbar_static_costs]" /> {!POINTS!}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_static_costs" size="6" maxlength="20" value="$content[surfbar_static_costs]" /> {!POINTS!}
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_STATIC_TIME--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_static_time" size="6" maxlength="20" value="$content[surfbar_static_time]" />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_static_time" size="6" maxlength="20" value="$content[surfbar_static_time]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_STATIC_LOCK--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_static_lock" size="6" maxlength="20" value="$content[surfbar_static_lock]" />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_static_lock" size="6" maxlength="20" value="$content[surfbar_static_lock]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_DYNAMIC_PERCENT--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_dynamic_percent" size="6" maxlength="20" value="$content[surfbar_dynamic_percent]" />%
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_dynamic_percent" size="6" maxlength="20" value="$content[surfbar_dynamic_percent]" />%
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_MAX_ORDER--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_max_order" size="6" maxlength="20" value="$content[surfbar_max_order]" />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_max_order" size="6" maxlength="20" value="$content[surfbar_max_order]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_RESTART_TIME--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_restart_time" size="6" maxlength="20" value="$content[surfbar_restart_time]" />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_restart_time" size="6" maxlength="20" value="$content[surfbar_restart_time]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_STATS_RELOAD--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_stats_reload" size="6" maxlength="20" value="$content[surfbar_stats_reload]" />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_stats_reload" size="6" maxlength="20" value="$content[surfbar_stats_reload]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_PURGE_DELETED--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_purge_deleted" size="6" maxlength="20" value="$content[surfbar_purge_deleted]" />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_purge_deleted" size="6" maxlength="20" value="$content[surfbar_purge_deleted]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_PURGE_MIGRATED--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_purge_migrated" size="6" maxlength="20" value="$content[surfbar_purge_migrated]" />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator bottom2">&nbsp;</TD></TR>
-       <TR>
-               <TD align="center" colspan="2" class="admin_footer bottom2">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_purge_migrated" size="6" maxlength="20" value="$content[surfbar_purge_migrated]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator bottom2">&nbsp;</td></tr>
+       <tr>
+               <td align="center" colspan="2" class="admin_footer bottom2">
                        <strong>{--ADMIN_CONFIG_SURFBAR_PAYMENT_MODEL--}</strong>
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_PAYMENT_MODEL_STATIC--}
-               </TD>
-               <TD>
-                       <INPUT type="radio" name="surfbar_pay_model" value="STATIC"{!__CONFIG_SURFBAR_PAY_MODEL_STATIC!} />
-               </TD>
-       </TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="radio" name="surfbar_pay_model" value="STATIC"{!__CONFIG_SURFBAR_PAY_MODEL_STATIC!} />
+               </td>
+       </tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_PAYMENT_MODEL_DYNAMIC--}
-               </TD>
-               <TD>
-                       <INPUT type="radio" name="surfbar_pay_model" value="DYNAMIC"{!__CONFIG_SURFBAR_PAY_MODEL_DYNAMIC!} />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator bottom2">&nbsp;</TD></TR>
-       <TR>
-               <TD align="center" colspan="2" class="admin_footer bottom2">
+               </td>
+               <td>
+                       <input type="radio" name="surfbar_pay_model" value="DYNAMIC"{!__CONFIG_SURFBAR_PAY_MODEL_DYNAMIC!} />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator bottom2">&nbsp;</td></tr>
+       <tr>
+               <td align="center" colspan="2" class="admin_footer bottom2">
                        {--ADMIN_CONFIG_SURFBAR_PAUSE_MODE--}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_PAUSE_MODE_INTERNAL--}
-               </TD>
-               <TD>
-                       <INPUT type="radio" name="surfbar_pause_mode" value="INTERNAL"{!__CONFIG_SURFBAR_PAUSE_MODE_INTERNAL!} />
-               </TD>
-       </TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="radio" name="surfbar_pause_mode" value="INTERNAL"{!__CONFIG_SURFBAR_PAUSE_MODE_INTERNAL!} />
+               </td>
+       </tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_PAUSE_MODE_EXTERNAL--}
-               </TD>
-               <TD>
-                       <INPUT type="radio" name="surfbar_pause_mode" value="EXTERNAL"{!__CONFIG_SURFBAR_PAUSE_MODE_EXTERNAL!} />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+               <td>
+                       <input type="radio" name="surfbar_pause_mode" value="EXTERNAL"{!__CONFIG_SURFBAR_PAUSE_MODE_EXTERNAL!} />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_PAUSE_URL--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_pause_url" size="15" maxlength="255" value="$content[surfbar_pause_url]" />
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR><TD height="3" colspan="2" class="seperator bottom2">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="center" colspan="2" class="admin_footer bottom2">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_pause_url" size="15" maxlength="255" value="$content[surfbar_pause_url]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator bottom2">&nbsp;</td></tr>
+       <tr>
+               <td align="center" colspan="2" class="admin_footer bottom2">
+                       {--ADMIN_CONFIG_SURFBAR_PAUSE_MODE--}
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
+                       <select name="surfbar_notification_mode" class="admin_select" size="1">
+                               <option value="INSTANT"{!__CONFIG_SURFBAR_NOTIFICATION_MODE_INSTANT!}>{--ADMIN_CONFIG_SURFBAR_NOTIFICATION_MODE_INSTANT--}</option>
+                               <option value="RESET"{!__CONFIG_SURFBAR_NOTIFICATION_MODE_RESET!}>{--ADMIN_CONFIG_SURFBAR_NOTIFICATION_MODE_RESET--}</option>
+                       </select>
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr><td height="3" colspan="2" class="seperator bottom2">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="center" colspan="2" class="admin_footer bottom2">
                        {--ADMIN_CONFIG_SURFBAR_AUTOSTART--}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD align="center" colspan="2">
-                       <INPUT type="radio" name="surfbar_autostart" value="Y"{!__CONFIG_SURFBAR_AUTOSTART_Y!} />&nbsp;{--YES--}
-                       <INPUT type="radio" name="surfbar_autostart" value="N"{!__CONFIG_SURFBAR_AUTOSTART_N!} />&nbsp;{--NO--}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR><TD height="3" colspan="2" class="seperator bottom2">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="center" colspan="2" class="admin_footer bottom2">
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td align="center" colspan="2">
+                       <input type="radio" name="surfbar_autostart" value="Y"{!__CONFIG_SURFBAR_AUTOSTART_Y!} />&nbsp;{--YES--}
+                       <input type="radio" name="surfbar_autostart" value="N"{!__CONFIG_SURFBAR_AUTOSTART_N!} />&nbsp;{--NO--}
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr><td height="3" colspan="2" class="seperator bottom2">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="center" colspan="2" class="admin_footer bottom2">
                        {--ADMIN_CONFIG_SURFBAR_NOTIFY_LIMITS--}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD align="center" colspan="2">
-                       <INPUT type="radio" name="surfbar_notify_limits" value="Y"{!__CONFIG_SURFBAR_NOTIFY_LIMITS_Y!} />&nbsp;{--YES--}
-                       <INPUT type="radio" name="surfbar_notify_limits" value="N"{!__CONFIG_SURFBAR_NOTIFY_LIMITS_N!} />&nbsp;{--NO--}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator bottom2">&nbsp;</TD></TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="right" style="padding-right:5px">
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td align="center" colspan="2">
+                       <input type="radio" name="surfbar_notify_limits" value="Y"{!__CONFIG_SURFBAR_NOTIFY_LIMITS_Y!} />&nbsp;{--YES--}
+                       <input type="radio" name="surfbar_notify_limits" value="N"{!__CONFIG_SURFBAR_NOTIFY_LIMITS_N!} />&nbsp;{--NO--}
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator bottom2">&nbsp;</td></tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
                        {--ADMIN_CONFIG_SURFBAR_WARN_LOW_POINTS--}
-               </TD>
-               <TD>
-                       <INPUT type="text" name="surfbar_warn_low_points" size="5" maxlength="20" value="$content[surfbar_warn_low_points]" /> {!POINTS!}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator bottom2">&nbsp;</TD></TR>
-       <TR>
-               <TD height="30" align="center" colspan="2" class="admin_footer bottom2">
+               </td>
+               <td>
+                       <input type="text" name="surfbar_warn_low_points" size="5" maxlength="20" value="$content[surfbar_warn_low_points]" /> {!POINTS!}
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="right" style="padding-right:5px">
+                       {--ADMIN_CONFIG_SURFBAR_LOW_INTERVAL--}
+               </td>
+               <td>
+                       <input type="text" name="surfbar_low_interval" size="5" maxlength="20" value="$content[surfbar_low_interval]" />
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator bottom2">&nbsp;</td></tr>
+       <tr>
+               <td height="30" align="center" colspan="2" class="admin_footer bottom2">
                        {--ADMIN_CONFIG_SURFBAR_MIGRATE_ORDER--}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator">&nbsp;</TD></TR>
-       <TR>
-               <TD align="center" colspan="2">
-                       <INPUT type="radio" name="surfbar_migrate_order" value="Y"{!__CONFIG_SURFBAR_MIGRATE_ORDER_Y!} />&nbsp;{--YES--}
-                       <INPUT type="radio" name="surfbar_migrate_order" value="N"{!__CONFIG_SURFBAR_MIGRATE_ORDER_N!} />&nbsp;{--NO--}
-               </TD>
-       </TR>
-       <TR><TD height="3" colspan="2" class="seperator bottom2">&nbsp;</TD></TR>
-       <TR>
-               <TD colspan="2" class="admin_footer">
-                       <INPUT type="reset" class="admin_reset" value="{--CLEAR_FORM--}" />&nbsp;*
-                       <INPUT type="submit" name="ok" class="admin_submit" value="{--SAVE_SETTINGS--}" />
-               </TD>
-       </TR>
-</TABLE>
-</FORM>
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator">&nbsp;</td></tr>
+       <tr>
+               <td align="center" colspan="2">
+                       <input type="radio" name="surfbar_migrate_order" value="Y"{!__CONFIG_SURFBAR_MIGRATE_ORDER_Y!} />&nbsp;{--YES--}
+                       <input type="radio" name="surfbar_migrate_order" value="N"{!__CONFIG_SURFBAR_MIGRATE_ORDER_N!} />&nbsp;{--NO--}
+               </td>
+       </tr>
+       <tr><td height="3" colspan="2" class="seperator bottom2">&nbsp;</td></tr>
+       <tr>
+               <td colspan="2" class="admin_footer">
+                       <input type="reset" class="admin_reset" value="{--CLEAR_FORM--}" />&nbsp;*
+                       <input type="submit" name="ok" class="admin_submit" value="{--SAVE_SETTINGS--}" />
+               </td>
+       </tr>
+</table>
+</form>
 
 <DIV class="admin_note">
        {--ADMIN_CONFIG_SURFBAR_NOTE--}