예제 #1
0
function JB_insert_post_data($insert_mode = 'EMPLOYER')
{
    if ($_REQUEST['user_id'] != '' && $insert_mode == 'ADMIN') {
        $user_id = (int) $_REQUEST['user_id'];
    } else {
        $user_id = (int) $_SESSION['JB_ID'];
    }
    // determine what kind of posting it is
    $post_mode = "free";
    if ($_REQUEST['type'] != 'premium') {
        if (JB_POSTING_FEE_ENABLED == 'YES') {
            $post_mode = "normal";
            if ($insert_mode != 'ADMIN') {
                $credits = JB_get_num_posts_remaining($user_id);
            }
        }
    } else {
        if (JB_PREMIUM_POSTING_FEE_ENABLED == 'YES') {
            $post_mode = "premium";
            if ($insert_mode != 'ADMIN') {
                $credits = JB_get_num_premium_posts_remaining($user_id);
            }
        }
    }
    $_PRIVILEGED_USER = false;
    if ($insert_mode != 'ADMIN') {
        // check if the user is priveleged
        $_PRIVILEGED_USER = JB_is_privileged_user($user_id, $post_mode);
    } elseif ($insert_mode == 'ADMIN') {
        // Admin mode is always _PRIVILEGED_USER
        $_PRIVILEGED_USER = true;
    }
    $approved = 'N';
    if (JB_POSTS_NEED_APPROVAL == 'NO') {
        $approved = 'Y';
    } elseif ($_PRIVILEGED_USER) {
        $approved = 'Y';
    } elseif (JB_POSTS_NEED_APPROVAL == 'NOT_SUBSCRIBERS' && $insert_mode == 'EMPLOYER') {
        // no approval needed for subscibers..
        if (JB_SUBSCRIPTION_FEE_ENABLED == 'YES') {
            // check subscription
            if (JB_get_employer_subscription_status($user_id) == 'Active') {
                $approved = 'Y';
            }
        }
        if ($post_mode != 'free') {
            $approved = 'Y';
        }
    }
    if ($_REQUEST['app_type'] == false) {
        $_REQUEST['app_type'] = "O";
    }
    $new = false;
    if ($_REQUEST['post_id'] == false) {
        $new = true;
        $now = gmdate("Y-m-d H:i:s");
        $assign = array('post_date' => gmdate("Y-m-d H:i:s"), 'post_mode' => $post_mode, 'user_id' => $user_id, 'pin_x' => (int) $_REQUEST['pin_x'], 'pin_y' => (int) $_REQUEST['pin_y'], 'approved' => $approved, 'app_type' => $_REQUEST['app_type'], 'app_url' => $_REQUEST['app_url'], 'cached_summary' => '', 'expired' => 'N');
        $sql = "REPLACE INTO `posts_table` (" . JB_get_sql_insert_fields(1, $assign) . ") VALUES (" . JB_get_sql_insert_values(1, "posts_table", "post_id", $post_id, $user_id, $assign) . " )";
        // DEDUCT CREDITS (For new posts)
        if ($post_mode == 'normal' && !$_PRIVILEGED_USER) {
            JB_deduct_posting_credit($user_id);
        }
        if ($post_mode == 'premium' && !$_PRIVILEGED_USER) {
            JB_deduct_p_posting_credit($user_id);
        }
    } else {
        $post_id = (int) $_REQUEST['post_id'];
        if ($insert_mode != 'ADMIN') {
            // verify that the post is owned by this user in case of hacking
            $sql = "SELECT * from posts_table where post_id='" . jb_escape_sql($_REQUEST['post_id']) . "'";
            //echo $sql.'<br>'.$user_id;
            $result = JB_mysql_query($sql) or die(mysql_error());
            $row = mysql_fetch_array($result, MYSQL_ASSOC);
            if ($row['user_id'] != $user_id) {
                die('hacking attempt');
            }
        }
        $old_data = JB_load_post_data($post_id);
        // these old_values will be used to update the category counters & keep the current approved status
        $approved = $old_data['approved'];
        $assign = array('pin_x' => (int) $_REQUEST['pin_x'], 'pin_y' => (int) $_REQUEST['pin_y'], 'approved' => $approved, 'app_type' => $_REQUEST['app_type'], 'app_url' => $_REQUEST['app_url']);
        $sql = "UPDATE `posts_table` SET " . JB_get_sql_update_values(1, "posts_table", "post_id", $_REQUEST['post_id'], $user_id, $assign) . " WHERE post_id='" . jb_escape_sql($post_id) . "'";
    }
    $result = JB_mysql_query($sql) or die(mysql_error() . $sql);
    if ($new) {
        $post_id = jb_mysql_insert_id();
    }
    JBPLUG_do_callback('insert_post_data', $post_id);
    // for the plugin if you want your plugin to do something after a post is saved. Note that if the post is edited then $_REQUEST['post_id'] will be set or else this is a new post.
    if (JB_PREMIUM_AUTO_UPGRADE == 'YES') {
        // auto upgrade to premium!
        $post_mode = "premium";
        $sql = "UPDATE `posts_table` SET `post_mode`='" . jb_escape_sql($post_mode) . "' WHERE post_id='" . jb_escape_sql($post_id) . "' ";
        JB_mysql_query($sql) or die(mysql_error() . $sql);
    }
    // rebuild categories count...
    JB_update_post_category_count($old_data, $_REQUEST);
    // This will update the category counters only for the affected categories
    // build categories cache / update counters / update rss, etc.
    JB_finalize_post_updates();
    if (JB_EMAIL_NEW_POST_SWITCH == 'YES' && $new) {
        $Form = JB_get_DynamicFormObject(1);
        $Form->load($post_id);
        $TITLE = $Form->get_raw_template_value("TITLE");
        $POSTED_BY = $Form->get_raw_template_value("POSTED_BY");
        $POSTED_BY_ID = $Form->get_raw_template_value("USER_ID");
        $DATE = JB_get_formatted_date($Form->get_template_value("DATE"));
        $FORMATTED_DATE = $DATE;
        $DESCRIPTION = $Form->get_raw_template_value("DESCRIPTION");
        // get the email template
        $template_result = JB_get_email_template(310, $_SESSION['LANG']);
        $t_row = mysql_fetch_array($template_result);
        $to_address = JB_SITE_CONTACT_EMAIL;
        $to_name = JB_SITE_NAME;
        $subject = $t_row['EmailSubject'];
        $message = $t_row['EmailText'];
        $from_name = $t_row['EmailFromName'];
        $from_address = $t_row['EmailFromAddress'];
        $subject = str_replace("%SITE_NAME%", JB_SITE_NAME, $subject);
        $message = str_replace("%SITE_NAME%", JB_SITE_NAME, $message);
        $message = str_replace("%SITE_URL%", JB_BASE_HTTP_PATH, $message);
        $message = str_replace("%SITE_CONTACT_EMAIL%", JB_SITE_CONTACT_EMAIL, $message);
        $message = str_replace("%POST_TITLE%", $TITLE, $message);
        $message = str_replace("%DATE%", $FORMATTED_DATE, $message);
        $message = str_replace("%POST_DESCRIPTION%", $DESCRIPTION, $message);
        $message = str_replace("%POSTED_BY%", $POSTED_BY, $message);
        $message = str_replace("%ADMIN_LINK%", JB_BASE_HTTP_PATH . "admin/ra.php?post_id=" . $Form->get_value('post_id') . "&key=" . md5($Form->get_value('post_id') . JB_ADMIN_PASSWORD), $message);
        $message = str_replace('<BR>', "\n", $message);
        $message = str_replace('<P>', "\n\n", $message);
        $message = html_entity_decode($message);
        $message = strip_tags($message);
        $email_id = JB_queue_mail($to_address, $to_name, $from_address, $from_name, $subject, $message, '', 310);
        JB_process_mail_queue(1, $email_id);
    }
    return $post_id;
}
예제 #2
0
function JB_create_new_employer_account()
{
    if ($_REQUEST['lang'] == '') {
        $_REQUEST['lang'] = JB_get_default_lang();
    }
    global $label;
    global $jb_mysql_link;
    $validated = 0;
    if (JB_EM_NEEDS_ACTIVATION == "AUTO" || JB_EM_NEEDS_ACTIVATION == "FIRST_POST") {
        $validated = 1;
    }
    // when inserting, use $assign to overwrite
    // the values which we do not want to fetch from the $_REQUEST
    // (Assuming that values on $_REQUEST already went through validation)
    $assign = array('Validated' => $validated, 'SignupDate' => gmdate("Y-m-d H:i:s"), 'IP' => $_SERVER['REMOTE_ADDR'], 'Newsletter' => (int) $_REQUEST['Newsletter'], 'Notification1' => (int) $_REQUEST['Notification1'], 'Notification2' => (int) $_REQUEST['Notification2'], 'posts_balance' => JB_BEGIN_STANDARD_CREDITS, 'premium_posts_balance' => JB_BEGIN_PREMIUM_CREDITS, 'Password' => md5(stripslashes($_REQUEST['Password'])), 'expired' => 'N');
    $sql = "REPLACE INTO `employers` (" . JB_get_sql_insert_fields(4, $assign) . ") VALUES (" . JB_get_sql_insert_values(4, "employers", "ID", $employer_id, '', $assign) . ") ";
    $result = JB_mysql_query($sql);
    $employer_id = JB_mysql_insert_id();
    if ($employer_id > 0) {
        JBPLUG_do_callback('create_employer_account', $employer_id);
    }
    $result = JB_get_email_template(2, $_SESSION['LANG']);
    $e_row = mysql_fetch_array($result, MYSQL_ASSOC);
    $subject = str_replace("%MEMBERID%", stripslashes($_REQUEST['Username']), $e_row['EmailSubject']);
    $EmailMessage = str_replace("%FNAME%", stripslashes($_REQUEST['FirstName']), $e_row['EmailText']);
    $EmailMessage = str_replace("%LNAME%", stripslashes($_REQUEST['LastName']), $EmailMessage);
    $EmailMessage = str_replace("%SITE_CONTACT_EMAIL%", JB_SITE_CONTACT_EMAIL, $EmailMessage);
    $EmailMessage = str_replace("%SITE_NAME%", JB_SITE_NAME, $EmailMessage);
    $EmailMessage = str_replace("%MEMBERID%", stripslashes($_REQUEST['Username']), $EmailMessage);
    $EmailMessage = str_replace("%PASSWORD%", stripslashes($_REQUEST['Password']), $EmailMessage);
    $EmailMessage = str_replace("%SITE_URL%", JB_BASE_HTTP_PATH, $EmailMessage);
    JBPLUG_do_callback('employer_signup_email_msg', $EmailMessage, $employer_id);
    if (!defined('JB_EMAIL_EMP_SIGNUP')) {
        define('JB_EMAIL_EMP_SIGNUP', 'YES');
    }
    if (JB_EMAIL_EMP_SIGNUP == 'YES') {
        $email_id = JB_queue_mail(stripslashes($_REQUEST['Email']), jb_get_formatted_name(stripslashes($_REQUEST['FirstName']), stripslashes($_REQUEST['LastName'])), $e_row['EmailFromAddress'], $e_row['EmailFromName'], $subject, $EmailMessage, '', 2);
        JB_process_mail_queue(1, $email_id);
    }
    $to = JB_SITE_CONTACT_EMAIL;
    if (JB_EMAIL_EMPLOYER_SIGNUP_SWITCH == 'YES') {
        $email_id = JB_queue_mail($to, "Admin", JB_SITE_CONTACT_EMAIL, JB_SITE_NAME, $subject, $EmailMessage, '', 2);
        JB_process_mail_queue(1, $email_id);
    }
    return $employer_id;
}
예제 #3
0
function JB_insert_profile_data()
{
    if (func_num_args() > 0) {
        $admin = func_get_arg(0);
        // admin mode.
    }
    $user_id = $_SESSION['JB_ID'];
    if ($_REQUEST['profile_id'] == false) {
        $assign = array('profile_date' => gmdate("Y-m-d H:i:s"), 'user_id' => $user_id, 'expired' => 'N');
        $sql = "REPLACE INTO `profiles_table` ( " . JB_get_sql_insert_fields(3, $assign) . ") VALUES (" . JB_get_sql_insert_values(3, "profiles_table", "profile_id", $_REQUEST['profile_id'], $user_id, $assign) . ") ";
    } else {
        $profile_id = (int) $_REQUEST['profile_id'];
        if (!$admin) {
            // make sure that the logged in user is the owner of this resume.
            $sql = "select user_id from `profiles_table` WHERE profile_id='" . jb_escape_sql($profile_id) . "'";
            $result = JB_mysql_query($sql) or die(mysql_error());
            $row = @mysql_fetch_array($result, MYSQL_ASSOC);
            if ($_SESSION['JB_ID'] !== $row['user_id']) {
                echo "!";
                return false;
                // not the owner, hacking attempt!
            }
        }
        $now = gmdate("Y-m-d H:i:s");
        // the static fields that we want to have on the update
        $assign = array('profile_date' => gmdate("Y-m-d H:i:s"), 'user_id' => $_SESSION['JB_ID']);
        $sql = "UPDATE `profiles_table` SET  " . JB_get_sql_update_values(3, "profiles_table", "profile_id", $_REQUEST['profile_id'], $user_id, $assign) . " WHERE profile_id='" . jb_escape_sql($profile_id) . "'";
    }
    JB_mysql_query($sql) or die("[{$sql}]" . mysql_error());
    if ($_REQUEST['profile_id'] == false) {
        $profile_id = JB_mysql_insert_id();
    }
    JB_build_profile_count(0);
    JBPLUG_do_callback('JB_insert_profile_data', $profile_id);
    return $profile_id;
}
예제 #4
0
function JB_create_new_candidate_account()
{
    global $label;
    if ($_REQUEST['lang'] == '') {
        $_REQUEST['lang'] = JB_get_default_lang();
    }
    $validated = 0;
    if (JB_CA_NEEDS_ACTIVATION == "AUTO") {
        $validated = 1;
    }
    // when inserting, use $assign to overwrite
    // the values which we do not want to fetch from the $_REQUEST
    // (Assuming that values on $_REQUEST already went through validation)
    $assign = array('Validated' => $validated, 'SignupDate' => gmdate("Y-m-d H:i:s"), 'IP' => $_SERVER['REMOTE_ADDR'], 'Newsletter' => (int) $_REQUEST['Newsletter'], 'Notification1' => (int) $_REQUEST['Notification1'], 'Notification2' => (int) $_REQUEST['Notification2'], 'Password' => md5(stripslashes($_REQUEST['Password'])), 'expired' => 'N');
    $sql = "REPLACE INTO `users` ( " . JB_get_sql_insert_fields(5, $assign) . ") VALUES (   " . JB_get_sql_insert_values(5, "users", "ID", $user_id, '', $assign) . ") ";
    JB_mysql_query($sql);
    $user_id = JB_mysql_insert_id();
    if ($user_id > 0) {
        JBPLUG_do_callback('create_candidate_account', $user_id);
    }
    // Here the emailmessage itself is defined, this will be send to your members. Don't forget to set the validation link here.
    $result = JB_get_email_template(1, $_SESSION['LANG']);
    $e_row = mysql_fetch_array($result, MYSQL_ASSOC);
    $EmailMessage = $e_row['EmailText'];
    $from = $e_row['EmailFromAddress'];
    $from_name = $e_row['EmailFromName'];
    $subject = $e_row['EmailSubject'];
    $subject = str_replace("%MEMBERID%", stripslashes($_REQUEST['Username']), $subject);
    $EmailMessage = str_replace("%FNAME%", stripslashes($_REQUEST['FirstName']), $EmailMessage);
    $EmailMessage = str_replace("%LNAME%", stripslashes($_REQUEST['LastName']), $EmailMessage);
    $EmailMessage = str_replace("%SITE_CONTACT_EMAIL%", JB_SITE_CONTACT_EMAIL, $EmailMessage);
    $EmailMessage = str_replace("%SITE_NAME%", JB_SITE_NAME, $EmailMessage);
    $EmailMessage = str_replace("%MEMBERID%", stripslashes($_REQUEST['Username']), $EmailMessage);
    $EmailMessage = str_replace("%PASSWORD%", stripslashes($_REQUEST['Password']), $EmailMessage);
    $EmailMessage = str_replace("%SITE_URL%", JB_BASE_HTTP_PATH, $EmailMessage);
    JBPLUG_do_callback('candidate_signup_email_msg', $EmailMessage, $user_id);
    $to = stripslashes($_REQUEST['Email']);
    if (!defined('JB_EMAIL_CAN_SIGNUP')) {
        define('JB_EMAIL_CAN_SIGNUP', 'YES');
    }
    if (JB_EMAIL_CAN_SIGNUP == 'YES') {
        $email_id = JB_queue_mail($to, stripslashes(jb_get_formatted_name(stripslashes($_REQUEST['FirstName']), stripslashes($_REQUEST['LastName']))), $e_row['EmailFromAddress'], $e_row['EmailFromName'], $subject, $EmailMessage, '', 1);
        JB_process_mail_queue(1, $email_id);
    }
    $to = JB_SITE_CONTACT_EMAIL;
    if (JB_EMAIL_CANDIDATE_SIGNUP_SWITCH == 'YES') {
        $email_id = JB_queue_mail($to, "Admin", JB_SITE_CONTACT_EMAIL, JB_SITE_NAME, $subject, $EmailMessage, '', 2);
        JB_process_mail_queue(1, $email_id);
    }
    return $user_id;
}
예제 #5
0
function JB_insert_resume_data()
{
    if (func_num_args() > 0) {
        $admin = func_get_arg(0);
        // admin mode.
    }
    $list_on_web = 'Y';
    $_REQUEST['anon'] = jb_alpha_numeric($_REQUEST['anon']);
    $status = "ACT";
    $approved = 'Y';
    if ($admin == true) {
        $sql = "select user_id from `resumes_table` WHERE resume_id='" . jb_escape_sql($_REQUEST['resume_id']) . "'";
        $result = JB_mysql_query($sql) or die(mysql_error());
        $row = @mysql_fetch_array($result, MYSQL_ASSOC);
        $user_id = $row['user_id'];
    } else {
        $user_id = (int) $_SESSION['JB_ID'];
    }
    if (JB_RESUMES_NEED_APPROVAL == 'YES' && !$admin) {
        $approved = 'N';
    }
    if ($_REQUEST['resume_id'] == false) {
        $assign = array('list_on_web' => 'Y', 'resume_date' => gmdate("Y-m-d H:i:s"), 'user_id' => $user_id, 'approved' => $approved, 'anon' => jb_alpha_numeric($_REQUEST['anon']), 'status' => 'ACT', 'expired' => 'N');
        $sql = "REPLACE INTO `resumes_table` ( " . JB_get_sql_insert_fields(2, $assign) . ") VALUES (" . JB_get_sql_insert_values(2, "resumes_table", "resume_id", $resume_id, $user_id, $assign) . ") ";
        // JB_get_sql_insert_values() escapes the sql values
        $action = "Inserted new resume.";
    } else {
        $resume_id = (int) $_REQUEST['resume_id'];
        $now = gmdate("Y-m-d H:i:s");
        $assign = array('resume_date' => gmdate("Y-m-d H:i:s"), 'anon' => jb_alpha_numeric($_REQUEST['anon']), 'approved' => $approved);
        $sql = "UPDATE `resumes_table` SET  " . JB_get_sql_update_values(2, "resumes_table", "resume_id", $_REQUEST['resume_id'], $user_id, $assign) . " WHERE resume_id='" . jb_escape_sql($resume_id) . "' and user_id='" . jb_escape_sql($user_id) . "' ";
        // JB_get_sql_update_values() // escapes the sql values
        //$action = "Updated existing resume";
    }
    JB_mysql_query($sql) or die("[{$sql}]" . mysql_error());
    if ($resume_id == false) {
        $resume_id = JB_mysql_insert_id();
    }
    $RForm =& JB_get_DynamicFormObject(2);
    $data = $RForm->load($resume_id);
    $data['resume_id'] = $resume_id;
    JB_build_resume_count(0);
    JBPLUG_do_callback('insert_resume_data', $data);
    if (JB_EMAIL_ADMIN_RESUPDATE_SWITCH == 'YES') {
        // send notification email to Admin
        $resume_tag_to_field_id =& $RForm->get_tag_to_field_id();
        $RESUME_SUMMARY = $action . "\r\n";
        $sql = "SELECT * from form_lists WHERE form_id=2 ORDER BY sort_order ";
        $result = JB_mysql_query($sql);
        while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
            $label = $field_field_label = $resume_tag_to_field_id[$row['template_tag']]['field_label'];
            $RESUME_SUMMARY .= $label . " - " . $RForm->get_raw_template_value($row['template_tag'], $admin) . "\r\n";
        }
        // get the email template
        $template_result = JB_get_email_template(320, 'EN');
        $t_row = mysql_fetch_array($template_result);
        $to_address = JB_SITE_CONTACT_EMAIL;
        $to_name = JB_SITE_NAME;
        $subject = $t_row['EmailSubject'];
        $message = $t_row['EmailText'];
        $from_name = $t_row['EmailFromName'];
        $from_address = $t_row['EmailFromAddress'];
        $subject = str_replace("%SITE_NAME%", JB_SITE_NAME, $subject);
        $message = str_replace("%RESUME_SUMMARY%", $RESUME_SUMMARY, $message);
        $message = str_replace("%ADMIN_LINK%", JB_BASE_HTTP_PATH . "admin/ra.php?resume_id=" . $resume_id . "&key=" . md5($resume_id . JB_ADMIN_PASSWORD), $message);
        $message = str_replace("%SITE_NAME%", JB_SITE_NAME, $message);
        $message = strip_tags($message);
        JB_queue_mail($to_address, $to_name, $from_address, $from_name, $subject, $message, '', 320);
    }
    return $resume_id;
}