コード例 #1
0
function jobman_register()
{
    global $jobman_register_failed, $wp_query;
    require_once ABSPATH . WPINC . '/registration.php';
    $vars = array('jobman_username', 'jobman_password', 'jobman_password2', 'jobman_email');
    foreach ($vars as $var) {
        if (!array_key_exists($var, $wp_query->query_vars)) {
            $jobman_register_failed = 4;
            return;
        }
    }
    if ($wp_query->query_vars['jobman_password'] != $wp_query->query_vars['jobman_password2']) {
        $jobman_register_failed = 2;
        return;
    }
    if (username_exists($wp_query->query_vars['jobman_username'])) {
        $jobman_register_failed = 1;
        return;
    }
    if (email_exists($wp_query->query_vars['jobman_email'])) {
        $jobman_register_failed = 3;
        return;
    }
    $userid = wp_create_user($wp_query->query_vars['jobman_username'], $wp_query->query_vars['jobman_password'], $wp_query->query_vars['jobman_email']);
    update_usermeta($userid, 'jobman', 1);
    jobman_login();
}
コード例 #2
0
function jobman_display_jobs($posts)
{
    global $wp_query, $wpdb, $jobman_displaying, $jobman_finishedpage, $sitepress, $wp_rewrite;
    if ($jobman_finishedpage || $jobman_displaying) {
        return $posts;
    }
    // Hack to fix Mystique theme CSS
    if (array_key_exists('mystique', $wp_query->query_vars) && 'css' == $wp_query->query_vars['mystique']) {
        return $posts;
    }
    $options = get_option('jobman_options');
    $post = NULL;
    $displaycat = false;
    if (array_key_exists('jobman_data', $wp_query->query_vars) && !array_key_exists('jobman_page', $wp_query->query_vars)) {
        if (term_exists($wp_query->query_vars['jobman_data'], 'jobman_category')) {
            $wp_query->query_vars['jcat'] = $wp_query->query_vars['jobman_data'];
        } else {
            $sql = "SELECT * FROM {$wpdb->posts} WHERE post_type='jobman_job' AND post_name=%s;";
            $sql = $wpdb->prepare($sql, $wp_query->query_vars['jobman_data']);
            $data = $wpdb->get_results($sql, OBJECT);
            if (count($data) > 0) {
                $wp_query->query_vars['page_id'] = $data[0]->ID;
            } else {
                return $posts;
            }
        }
    }
    if (!array_key_exists('jcat', $wp_query->query_vars)) {
        if (isset($wp_query->query_vars['jobman_root_id'])) {
            $post = get_post($wp_query->query_vars['jobman_root_id']);
        } else {
            if (isset($wp_query->query_vars['page_id'])) {
                $post = get_post($wp_query->query_vars['page_id']);
            }
        }
        if ($post == NULL || !isset($wp_query->query_vars['jobman_page']) && $post->ID != $options['main_page'] && !in_array($post->post_type, array('jobman_job', 'jobman_app_form', 'jobman_register'))) {
            return $posts;
        }
    }
    // We're going to be displaying a Job Manager page.
    $jobman_displaying = true;
    $wp_query->is_home = false;
    remove_filter('the_content', 'wpautop');
    // Hack to kill WPML on Job Manager pages. Need to add proper support later.
    if (defined('ICL_SITEPRESS_VERSION') && !empty($sitepress)) {
        remove_filter('posts_join', array($sitepress, 'posts_join_filter'));
        remove_filter('posts_where', array($sitepress, 'posts_where_filter'));
    }
    if (NULL != $post) {
        $postmeta = get_post_custom($post->ID);
        $postcats = wp_get_object_terms($post->ID, 'jobman_category');
        $postdata = array();
        foreach ($postmeta as $key => $value) {
            if (is_array($value)) {
                $postdata[$key] = $value[0];
            } else {
                $postdata[$key] = $value;
            }
        }
    }
    if (array_key_exists('jobman_register', $wp_query->query_vars)) {
        jobman_register();
    } else {
        if (array_key_exists('jobman_username', $wp_query->query_vars)) {
            jobman_login();
        }
    }
    global $jobman_data;
    $jobman_data = '';
    if (array_key_exists('jobman_data', $wp_query->query_vars)) {
        $jobman_data = $wp_query->query_vars['jobman_data'];
    } else {
        if (array_key_exists('j', $wp_query->query_vars)) {
            $jobman_data = $wp_query->query_vars['j'];
        } else {
            if (array_key_exists('c', $wp_query->query_vars)) {
                $jobman_data = $wp_query->query_vars['c'];
            }
        }
    }
    if (array_key_exists('jcat', $wp_query->query_vars)) {
        // We're looking at a category
        $cat = get_term_by('slug', $wp_query->query_vars['jcat'], 'jobman_category');
        $posts = jobman_display_jobs_list($cat->term_id);
        if (count($posts) > 0) {
            $posts[0]->post_content = $options['text']['category_before'] . $posts[0]->post_content . $options['text']['category_after'];
        }
    } else {
        if (isset($wp_query->query_vars['jobman_page']) || NULL != $post && in_array($post->post_type, array('jobman_job', 'jobman_app_form', 'jobman_register'))) {
            if (NULL == $post || !in_array($post->post_type, array('jobman_job', 'jobman_app_form', 'jobman_register'))) {
                $sql = "SELECT * FROM {$wpdb->posts} WHERE (post_type='jobman_job' OR post_type='jobman_app_form' OR post_type='jobman_register') AND post_name=%s;";
                $sql = $wpdb->prepare($sql, $wp_query->query_vars['jobman_page']);
                $data = $wpdb->get_results($sql, OBJECT);
            } else {
                $data = array($post);
            }
            if (count($data) > 0) {
                $post = $data[0];
                $postmeta = get_post_custom($post->ID);
                $postcats = wp_get_object_terms($post->ID, 'jobman_category');
                $postdata = array();
                foreach ($postmeta as $key => $value) {
                    if (is_array($value)) {
                        $postdata[$key] = $value[0];
                    } else {
                        $postdata[$key] = $value;
                    }
                }
                if ('jobman_job' == $post->post_type) {
                    // We're looking at a job
                    $posts = jobman_display_job($post->ID);
                    if (count($posts) > 0) {
                        $posts[0]->post_content = $options['text']['job_before'] . $posts[0]->post_content . $options['text']['job_after'];
                    }
                } else {
                    if ('jobman_app_form' == $post->post_type) {
                        // We're looking at an application form
                        $jobid = (int) $jobman_data;
                        if ('' == $jobman_data) {
                            $posts = jobman_display_apply(-1);
                        } else {
                            if ($jobid > 0) {
                                $posts = jobman_display_apply($jobid);
                            } else {
                                $posts = jobman_display_apply(-1, $jobman_data);
                            }
                        }
                        if (count($posts) > 0) {
                            $posts[0]->post_content = $options['text']['apply_before'] . $posts[0]->post_content . $options['text']['apply_after'];
                        }
                    } else {
                        if ('jobman_register' == $post->post_type) {
                            // Looking for the registration form
                            if (is_user_logged_in()) {
                                wp_redirect(get_page_link($options['main_page']));
                                exit;
                            } else {
                                $posts = jobman_display_register();
                                if (count($posts) > 0) {
                                    $posts[0]->post_content = $options['text']['registration_before'] . $posts[0]->post_content . $options['text']['registration_after'];
                                }
                            }
                        } else {
                            $posts = array();
                        }
                    }
                }
            } else {
                $posts = array();
            }
        } else {
            if (NULL != $post && $post->ID == $options['main_page']) {
                // We're looking at the main job list page
                $posts = jobman_display_jobs_list('all');
                if (count($posts) > 0) {
                    $posts[0]->post_content = $options['text']['main_before'] . $posts[0]->post_content . $options['text']['main_after'];
                }
            } else {
                $posts = array();
            }
        }
    }
    if (!empty($posts)) {
        $wp_query->queried_object = $posts[0];
        $wp_query->queried_object_id = $posts[0]->ID;
        $wp_query->is_page = true;
        $wp_query->is_singular = true;
    }
    $hidepromo = $options['promo_link'];
    if (get_option('smb_consulting')) {
        $hidepromo = true;
    }
    if (!$hidepromo && count($posts) > 0) {
        $posts[0]->post_content .= '<p class="jobmanpromo">' . sprintf(__('This job listing was created using <a href="%s" title="%s">Job Manager</a> for WordPress, by <a href="%s">Tom Townsend</a>.', 'jobman'), 'http://www.wp-jobmanager.com/', __('The ORIGINAL Job Manager plugin', 'jobman'), 'https://profiles.wordpress.org/smb-dev/') . '</p>';
    }
    $jobman_finishedpage = true;
    return $posts;
}