/** * Enqueue scripts */ function enqueue_script() { if (!in_array(get_post_type(), array('lpr_question'))) { return; } ob_start(); ?> <script> var form = $('#post'); form.submit(function (evt) { var $title = $('#title'), is_error = false; if (0 == $title.val().length) { alert('<?php _e('Please enter the title of the question', 'learn_press'); ?> '); $title.focus(); is_error = true; } else if ( $('.lpr-question-types').length && ( 0 == $('.lpr-question-types').val().length ) ) { alert('<?php _e('Please a type of question', 'learn_press'); ?> '); $('.lpr-question-types').focus(); is_error = true; } if (is_error) { evt.preventDefault(); return false; } }); </script> <?php $script = ob_get_clean(); $script = preg_replace('!</?script>!', '', $script); learn_press_enqueue_script($script); ob_start(); ?> <script type="text/html" id="tmpl-form-quick-add-question"> <div id="lpr-form-quick-add-question" class="lpr-quick-add-form"> <input type="text"> <select class="lpr-question-types lpr-select2" name="lpr_question[type]" id="lpr-quiz-question-type"> <?php if ($questions = lpr_get_question_types()) { ?> <?php foreach ($questions as $type) { $question = LPR_Question_Type::instance($type); if (!$question) { continue; } ?> <option value="<?php echo $type; ?> "><?php echo $question->get_name(); ?> </option> <?php } ?> <?php } ?> </select> <button class="button" data-action="add" type="button"><?php _e('Add [Enter]', 'learn_press'); ?> </button> <button data-action="cancel" class="button" type="button"><?php _e('Cancel [ESC]', 'learn_press'); ?> </button> <span class="lpr-ajaxload">...</span> </div> </script> <?php $js_template = ob_get_clean(); learn_press_enqueue_script($js_template, true); }
static function html($meta, $field) { global $post; $post_id = $post->ID; $questions = lpr_get_question_types(); $question = get_post_meta($post_id, '_lpr_question', true); $question = wp_parse_args($question, array('type' => null)); ob_start(); //print_r($question_type); ?> <script type="text/javascript">var lpr_question_id = <?php echo intval($post_id); ?> ;</script> <div id="lpr-question-options-wrap"> <select class="lpr-question-types" name="lpr_question[type]" id="lpr_question-type" data-type="<?php echo $question['type']; ?> "> <option value=""><?php _e('Select...'); ?> </option> <?php if ($questions) { ?> <?php foreach ($questions as $type) { ?> <option value="<?php echo $type; ?> " <?php selected(isset($question['type']) && $type == $question['type'] ? 1 : 0, 1); ?> ><?php echo LPR_Question_Type::instance($type)->get_name(); ?> </option> <?php } ?> <?php } ?> </select> <div class="lpr-question-settings"> <?php if (isset($question['type'])) { ?> <?php LPR_Question_Type::instance($question['type'], array('ID' => $post_id))->admin_interface(); ?> <?php } ?> </div> <?php if (in_array($question['type'], array('true_or_false', 'multiple_choice', 'single_choice'))) { ?> <strong>Tips:</strong> <p><i>In <strong>Answer text</strong>, press Enter/Tab key to move to next</i></p> <p><i>In <strong>Answer text</strong>, when the text is empty press Delete/Back Space or click out side to remove</i></p> <p><i>In <strong>Answer text</strong>, press ESC to restore the text at the last time edited</i></p> <?php } ?> </div> <script type="text/javascript"> </script> <?php return ob_get_clean(); }
function enqueue_script() { if ('lpr_quiz' != get_post_type()) { return; } ob_start(); ?> <script> var form = $('#post'); form.submit(function(evt){ var $title = $('#title'), is_error = false; window.learn_press_before_update_quiz_message = []; if( 0 == $title.val().length ){ window.learn_press_before_update_quiz_message.push( '<?php _e('Please enter the title of the quiz', 'learn_press'); ?> ' ); $title.focus(); is_error = true; } /* hook */ is_error = form.triggerHandler( 'learn_press_question_before_update' ) === false; if( window.learn_press_before_update_quiz_message.length /*true == is_error*/ ){ if( window.learn_press_before_update_quiz_message.length ){ alert( "Error: \n" + window.learn_press_before_update_quiz_message.join( "\n\n" ) ) } evt.preventDefault(); return false; } }); </script> <?php $script = ob_get_clean(); $script = preg_replace('!</?script>!', '', $script); learn_press_enqueue_script($script); ob_start(); ?> <script type="text/html" id="tmpl-form-quick-add-question"> <div id="lpr-form-quick-add-question" class="lpr-quick-add-form"> <input type="text"> <select class="lpr-question-types lpr-select2" name="lpr_question[type]" id="lpr-quiz-question-type"> <?php if ($questions = lpr_get_question_types()) { ?> <?php foreach ($questions as $type) { ?> <option value="<?php echo $type; ?> "><?php echo LPR_Question_Type::instance($type)->get_name(); ?> </option> <?php } ?> <?php } ?> </select> <button class="button" data-action="add" type="button"><?php _e('Add [Enter]', 'learnpress'); ?> </button> <button data-action="cancel" class="button" type="button"><?php _e('Cancel [ESC]', 'learnpress'); ?> </button> <span class="lpr-ajaxload">...</span> </div> </script> <?php $js_template = ob_get_clean(); learn_press_enqueue_script($js_template, true); }
<?php wp_die('Something went wrong'); $post_id = $this->get('ID'); settype($args, 'array'); $is_collapse = array_key_exists('toggle', $args) && !$args['toggle']; $questions = lpr_get_question_types(); ?> <div class="learn-press-question learn-press-question-<?php echo preg_replace('!_!', '-', $this->get_type()); ?> " data-id="<?php echo $this->id; ?> "> <div class="question-head"> <p> <a href="<?php echo get_edit_post_link($this->id); ?> "><?php _e('Edit', 'learn_press'); ?> </a> <a href="" data-action="remove"><?php _e('Remove', 'learn_press'); ?> </a> <a href="" data-action="expand" class="<?php echo !$is_collapse ? "hide-if-js" : ""; ?>
static function html($meta, $field) { global $post; $post_id = $post->ID; $current_user = get_current_user_id(); $questions = lpr_get_question_types(); $lpr_questions = (array) get_post_meta($post_id, '_lpr_quiz_questions', true); $qids = array_keys($lpr_questions); $qoptions = array_values($lpr_questions); ob_start(); ?> <script type="text/javascript">var lpr_quiz_id = <?php echo intval($post_id); ?> </script> <div id="lpr-quiz-questions-wrap"> <p align="right" class="lpr-questions-toggle"> <a href="" data-action="expand"><?php _e('Expand All', 'learn_press'); ?> </a> <a href="" data-action="collapse"><?php _e('Collapse All', 'learn_press'); ?> </a> </p> <div id="lpr-quiz-questions"> <?php if ($qids) { $index = 0; ?> <?php foreach ($qids as $question_id) { ?> <?php if ($question = LPR_Question_Type::instance($question_id)) { $question->admin_interface($qoptions[$index++]); } ?> <?php } ?> <?php } ?> </div> <p style="vertical-align: middle;"> <div class="btn-group" id="lpr-add-new-question-type"> <button type="button" class="btn btn-default" data-type="single_choice"><?php _e('Add new Question', 'learn_press'); ?> </button> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> <span class="caret"></span> <span class="sr-only"><?php _e('Toggle Dropdown', 'learn_press'); ?> </span> </button> <ul class="dropdown-menu" role="menu"> <?php if ($questions) { ?> <?php foreach ($questions as $type) { ?> <li><a href="" rel="<?php echo $type; ?> "><?php echo LPR_Question_Type::instance($type)->get_name(); ?> </a> </li> <?php } ?> <?php } ?> </ul> </div> <?php _e('-Or-', 'learn_press'); ?> <select class="lpr-select2" name="" id="lpr-quiz-question-select-existing" style="width:300px"> <option value=""><?php _e('--Select existing question--', 'learn_press'); ?> </option> <?php $query_args = array('post_type' => 'lpr_question', 'post_status' => 'publish', 'author' => $current_user, 'posts_per_page' => -1, 'post__not_in' => $qids); $query = new WP_Query($query_args); if ($query->have_posts()) { while ($query->have_posts()) { $p = $query->next_post(); echo '<option value="' . $p->ID . '" data-type="">' . $p->post_title . '</option>'; } } ?> </select> </p> </div> <?php return ob_get_clean(); }
/** * Prints the header of a question in admin mode * should call this function before in the top of admin_interface in extends class * * @param array $args * * @reutrn void */ function admin_interface_head($args = array()) { $post_id = $this->get('ID'); settype($args, 'array'); $is_collapse = array_key_exists('toggle', $args) && !$args['toggle']; $questions = lpr_get_question_types(); ?> <div class="lpr-question lpr-question-<?php echo preg_replace('!_!', '-', $this->get_type()); ?> " data-id="<?php echo $this->get('ID'); ?> "> <div class="lpr-question-head"> <p> <a href="<?php echo get_edit_post_link($post_id); ?> "><?php _e('Edit', 'learn_press'); ?> </a> <a href="" data-action="remove"><?php _e('Remove', 'learn_press'); ?> </a> <a href="" data-action="expand" class="<?php echo !$is_collapse ? "hide-if-js" : ""; ?> "><?php _e('Expand', 'learn_press'); ?> </a> <a href="" data-action="collapse" class="<?php echo $is_collapse ? "hide-if-js" : ""; ?> "><?php _e('Collapse', 'learn_press'); ?> </a> </p> <select name="lpr_question[<?php echo $post_id; ?> ][type]" data-type="<?php echo $this->get_type(); ?> "> <?php if ($questions) { foreach ($questions as $type) { ?> <?php $question = LPR_Question_Type::instance($type); ?> <?php if ($question) { ?> <option value="<?php echo $type; ?> " <?php selected($this->get_type() == $type ? 1 : 0, 1); ?> > <?php echo $question->get_name(); ?> </option> <?php } ?> <?php } } ?> </select><!--<strong><i>[ <?php echo $this->get_name(); ?> ]</i></strong>--> <span class="lpr-question-title"><input class="inactive" type="text" name="lpr_question[<?php echo $this->get('ID'); ?> ][text]" value="<?php echo esc_attr($this->get('post_title')); ?> " /></span> </div> <div class="lpr-question-content<?php echo $is_collapse ? " hide-if-js" : ""; ?> "> <?php //do_action( 'learn_press_admin_before_question_answer', $this ); ?> <p class="lpr-question-option-label"><?php _e('Answer', 'learn_press'); ?> </p> <?php }