+// Show edit form or do the changes
+function SURFBAR_MEMBER_EDIT_ACTION ($urlData) {
+ // Is the "execute" flag there?
+ if (isset($urlData['edit']['execute'])) {
+ // Execute the changes
+ return SURFBAR_MEMBER_EXECUTE_ACTION("edit", $urlData);
+ } // END - if
+
+ // Display form
+ return SURFBAR_MEMBER_DISPLAY_ACTION_FORM("edit", $urlData);
+}
+// Show delete form or do the changes
+function SURFBAR_MEMBER_DELETE_ACTION ($urlData) {
+ // Is the "execute" flag there?
+ if (isset($urlData['delete']['execute'])) {
+ // Execute the changes
+ return SURFBAR_MEMBER_EXECUTE_ACTION("delete", $urlData);
+ } // END - if
+
+ // Display form
+ return SURFBAR_MEMBER_DISPLAY_ACTION_FORM("delete", $urlData);
+}
+// Display selected "action form"
+function SURFBAR_MEMBER_DISPLAY_ACTION_FORM ($action, $urlData) {
+ // Translate some data
+ $urlData['registered'] = MAKE_DATETIME($urlData['registered'], "2");
+ $urlData['views_total'] = TRANSLATE_COMMA($urlData['views_total']);
+ $urlData['views_max'] = TRANSLATE_COMMA($urlData['views_max']);
+ $urlData['views_allowed'] = TRANSLATE_COMMA($urlData['views_allowed']);
+ $urlData['last_locked'] = MAKE_DATETIME($urlData['last_locked'], "2");
+
+ // Is the lock reason empty?
+ if (empty($urlData['lock_reason'])) {
+ // Fix it to three dashes
+ $urlData['lock_reason'] = "---";
+ } // END - if
+
+ // Default is not limited
+ $urlData['limited_yes'] = "";
+ $urlData['limited_no'] = " checked=\"checked\"";
+ $urlData['limited'] = "false";
+
+ // Is this URL limited?
+ if ($urlData['views_max'] > 0) {
+ // Then rewrite form data
+ $urlData['limited_yes'] = " checked=\"checked\"";
+ $urlData['limited_no'] = "";
+ $urlData['limited'] = "true";
+ } // END - if
+
+ // Load the form and display it
+ LOAD_TEMPLATE(sprintf("member_surfbar_%s_action_form", $action), false, $urlData);
+
+ // All fine by default ... ;-)
+ return true;
+}
+// Execute choosen action
+function SURFBAR_MEMBER_EXECUTE_ACTION ($action, $urlData) {
+ // By default nothing is executed
+ $executed = false;
+
+ // Is limitation "no" and "limit" is > 0?
+ if ((isset($urlData[$action]['limited'])) && ($urlData[$action]['limited'] == "N") && ((isset($urlData[$action]['limit'])) && ($urlData[$action]['limit'] > 0)) || (!isset($urlData[$action]['limit']))) {
+ // Set it to unlimited
+ $urlData[$action]['limit'] = 0;
+ } // END - if
+
+ // Construct function name
+ $functionName = sprintf("SURFBAR_MEMBER_EXECUTE_%s_ACTION", strtoupper($action));
+
+ // Is 'userid' set and not 'uid' ?
+ if ((!isset($urlData['uid'])) && (isset($urlData['userid']))) {
+ // Auto-fix this
+ $urlData['uid'] = $urlData['userid'];
+ } // END - if
+
+ // Is that function there?
+ if (function_exists($functionName)) {
+ // Execute the function
+ if (call_user_func_array($functionName, array($urlData)) == true) {
+ // Update status as well
+ $executed = SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+ } // END - if
+ } else {
+ // Not found!
+ ADD_FATAL(sprintf(MEMBER_SURFBAR_EXECUTE_ACTION_404, $functionName));
+ }
+
+ // Return status
+ return $executed;
+}
+// "Execute edit" function: Update changed data
+function SURFBAR_MEMBER_EXECUTE_EDIT_ACTION ($urlData) {
+ // Translate URLs for testing
+ $url1 = COMPILE_CODE($urlData['url']);
+ $url2 = COMPILE_CODE($urlData['edit']['url']);
+
+ // Has the URL or limit changed?
+ if (true) {
+ //if (($urlData['views_allowed'] != $urlData['edit']['limit']) || ($url1 != $url2)) {
+ // Run the query
+ SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_surfbar_urls SET url='%s', views_allowed=%s, views_max=%s WHERE id=%s AND status='%s' LIMIT 1",
+ array($urlData['url'], $urlData['edit']['limit'], $urlData['edit']['limit'], $urlData['id'], $urlData['status']), __FILE__, __LINE__);
+
+ // Prepare new data
+ $urlData['new_url'] = $urlData['edit']['url'];
+ $urlData['new_limit'] = $urlData['edit']['limit'];
+ unset($urlData['edit']);
+
+ // Send admin notification
+ SURFBAR_NOTIFY_ADMIN("url_edited", $urlData);
+
+ // Send user notification
+ SURFBAR_NOTIFY_USER("url_edited", $urlData);
+ } // END - if
+
+ // All fine!
+ return true;
+}