ACADEMIZER_PLUGIN_PATH, 'ajax_url' => admin_url('admin-ajax.php'))); add_meta_box('academizer_reference_meta_box', __('Reference Data', 'academizer'), 'academizer_reference_build_meta_box', 'academizer_reference', 'normal', 'low'); } add_action('add_meta_boxes_academizer_reference', 'academizer_add_reference_meta_boxes'); add_action('save_post_academizer_reference', 'academizer_save_reference_meta_box_data'); add_action('wp_ajax_academizer_ajax_render_bibtex', 'academizer_ajax_render_bibtex'); add_action('wp_ajax_academizer_ajax_query_terms', 'academizer_ajax_query_terms'); function academizer_ajax_query_terms() { $terms = academizer_retrieve_terms($_POST['entry_type']); echo sizeof($terms); } function academizer_ajax_render_bibtex() { $parser = new AcademizerBibtexParser(); $json_string = stripslashes($_POST['bibtex']); $json_obj = json_decode($json_string); if (empty($json_obj)) { wp_die(json_encode(array( 'message' => "Bibtex is invalid.", 'result' => -1))); } $entry_type = $json_obj[0]->entryType; $terms = academizer_retrieve_terms($entry_type); $term = $terms[0]; $term_id = $term->term_id; if (sizeof($term_id) == 0 && empty($_POST['format'])) { wp_die(json_encode(array( 'message' => "Bibtex type: {$entry_type} not found. Please add a Reference Type first.", 'result' => -1))); } if (empty($_POST['format'])) { $format = get_term_meta($term_id, 'academizer_format', true); if (empty($format)) wp_die(json_encode(array( 'message' => "No format specified for {$json_obj[0]->entryType}.", 'result' => -1))); } else $format = $_POST['format']; $options = get_option('academizer_options'); $ref = AcademizerReference::Create( $options['name'], $json_string, $format, $_POST['paper_url'], $_POST['pub_url'] ); wp_die(json_encode(array( 'message' => $parser->parse($ref), 'result' => 1))); } function academizer_reference_build_meta_box($post) { global $pagenow; wp_nonce_field(basename(__FILE__), 'academizer_meta_box_nonce'); $options = get_option('academizer_options'); if (($pagenow == 'post.php') && ($_GET['action'] == 'edit')) { $terms = get_the_terms($post->ID, 'academizer_reftype'); $entry_term = $terms[0]; $ref = AcademizerReference::Create( $options['name'], get_post_meta($post->ID, 'academizer_bibtex_json', true), get_term_meta($entry_term->term_id, 'academizer_format', true), $post->academizer_paper_url, $post->academizer_pub_url ); } else { $ref = new AcademizerReference(); $ref->me_full_name = $options['name']; } ?>