time()) || (($stamp2 + $_CONFIG['holiday_lock']) > time())) { // Mail order is to close away! unset($_POST['ok']); unset($_POST['stop']); if (($stamp1 + $_CONFIG['holiday_lock']) > time()) { // Mail found in pool $stamp = $stamp1; } else { // Mail found in stats $stamp = $stamp2; } // Display message and exit here LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_ORDER_1.MAKE_DATETIME($stamp, "1").HOLIDAY_MEMBER_ORDER_2); return; } } // Free memory SQL_FREERESULT($result1); SQL_FREERESULT($result2); if (isset($_POST['ok'])) { // Check holiday request... $START = mktime(0, 0, 0, $_POST['start_month'], $_POST['start_day'], $_POST['start_year']); $END = mktime(0, 0, 0, $_POST['end_month'] , $_POST['end_day'] , $_POST['end_year'] ); // Test both values $TEST = $END - $START; if (($TEST < 0) || ($TEST > (ONE_DAY * $_CONFIG['holiday_max'])) || ($START < time()) || ($END < time())) { // Time test failed unset($_POST['ok']); } else { // Everything went okay so let's store his request and send mails $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_holidays (userid, holiday_start, holiday_end, comments) VALUES ('%s', '%s', '%s', '%s')", array($GLOBALS['userid'], $START, $END, $_POST['comments']), __FILE__, __LINE__); // Activate holiday system $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET holiday_active='N', holiday_activated=UNIX_TIMESTAMP() WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); // Prepare constants define('_START_DAY' , $_POST['start_day']); define('_START_MONTH', $MONTH_DESCR[$_POST['start_month']]); define('_START_YEAR' , $_POST['start_year']); define('_END_DAY' , $_POST['end_day']); define('_END_MONTH' , $MONTH_DESCR[$_POST['end_month']]); define('_END_YEAR' , $_POST['end_year']); // Send mail to member $msg = LOAD_EMAIL_TEMPLATE("member_holiday_request", $_POST['comments'], $GLOBALS['userid']); SEND_EMAIL($GLOBALS['userid'], HOLIDAY_MEMBER_SUBJECT, $msg); // Send mail to all admins SEND_ADMIN_NOTIFICATION(HOLIDAY_ADMIN_SUBJECT, "admin_holiday_request", $_POST['comments'], $GLOBALS['userid']); // Create task $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_task_system (userid, assigned_admin, status, task_type, subject, text, task_created) VALUES ('%s', '0', 'NEW', 'HOLIDAY_REQUEST', '%s', '%s', UNIX_TIMESTAMP())", array($GLOBALS['userid'], HOLIDAY_ADMIN_SUBJECT, addslashes($msg)), __FILE__, __LINE__); // Display message LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_IS_ACTIVATED_NOW); } } // Holiday shall be ended now if (isset($_POST['stop'])) { // Okay, end the holiday here... $result = SQL_QUERY_ESC("SELECT holiday_active, holiday_activated FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); list($active, $locked) = SQL_FETCHROW($result); SQL_FREERESULT($result); if (($active == "Y") && (($locked + $_CONFIG['holiday_lock']) < time())) { // Load data $result = SQL_QUERY_ESC("SELECT holiday_start, holiday_end FROM "._MYSQL_PREFIX."_user_holidays WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); if (SQL_NUMROWS($result) == 1) { // Data was found list($start, $end) = SQL_FETCHROW($result); SQL_FREERESULT($result); // Prepare it for the template define('__HOLIDAY_START', MAKE_DATETIME($start, "3")); define('__HOLIDAY_END' , MAKE_DATETIME($end , "3")); // Deactivate it now $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET holiday_active='N', holiday_activated='0' WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); // Remove entry $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_holidays WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); // Send email to admin SEND_ADMIN_NOTIFICATION(HOLIDAY_ADMIN_DEAC_SUBJ, "admin_holiday_deactivated", "", $GLOBALS['userid']); // Display message to user LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_DEACTIVATED_NOW); } else { // Display message to user LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_CANNOT_DEACTIVATE); } } elseif ($active == "Y") { // To fast! LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_LOCKED); } } // If something is wrong or link in menu is just clicked display form if ((!isset($_POST['ok'])) && (!isset($_POST['stop']))) { // Check if user is in holiday... $result = SQL_QUERY_ESC("SELECT holiday_active, holiday_activated FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); list($active, $locked) = SQL_FETCHROW($result); SQL_FREERESULT($result); // Check for lock if (($locked + $_CONFIG['holiday_lock']) < time()) { // User can deactivate his holiday request switch ($active) { case 'Y': // Display deactivation form // Load starting and ending date $result = SQL_QUERY_ESC("SELECT holiday_start, holiday_end FROM "._MYSQL_PREFIX."_user_holidays WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); if (SQL_NUMROWS($result) == 1) { // Data was found list($start, $end) = SQL_FETCHROW($result); SQL_FREERESULT($result); // Prepare it for the template define('__HOLIDAY_START', MAKE_DATETIME($start , "3")); define('__HOLIDAY_END' , MAKE_DATETIME($end , "3")); define('__HOLIDAY_LOCK' , MAKE_DATETIME($locked, "1")); // Load template LOAD_TEMPLATE("member_holiday_deactivate"); } else { // Free memory SQL_FREERESULT($result); // Remove entry and reload URL $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET holiday_active='N' WHERE userid=%s LIMIT 1", array($GLOBALS['userid']), __FILE__, __LINE__); LOAD_URL("modules.php?module=login&what=holiday"); return; } break; case 'N': // Display activation form // Starting day define('_START_DAY' , ADD_SELECTION("day" , date("d", (time() + ONE_DAY)), "start")); define('_START_MONTH', ADD_SELECTION("month", date("m", (time() + ONE_DAY)), "start")); define('_START_YEAR' , ADD_SELECTION("year" , date('Y', (time() + ONE_DAY)), "start")); // Calcualte ending date $D = date("d", time() + ONE_DAY + (ONE_DAY * $_CONFIG['holiday_max'])); $M = date("m", time() + ONE_DAY + (ONE_DAY * $_CONFIG['holiday_max'])); $Y = date('Y', time() + ONE_DAY + (ONE_DAY * $_CONFIG['holiday_max'])); // Ending day define('_END_DAY' , ADD_SELECTION("day" , $D, "end")); define('_END_MONTH', ADD_SELECTION("month", $M, "end")); define('_END_YEAR' , ADD_SELECTION("year" , $Y, "end")); // Copy value from configuration define('__HOLIDAY_MAX', $_CONFIG['holiday_max']); // Output form LOAD_TEMPLATE("member_holiday_form"); break; } } else { // To fast! LOAD_TEMPLATE("admin_settings_saved", false, HOLIDAY_MEMBER_LOCKED); } } // ?>