コード例 #1
0
        function module_status($atts)
        {
            ob_start();
            extract(shortcode_atts(array('course_id' => in_the_loop() ? get_the_ID() : '', 'unit_id' => false, 'message' => __('%d of %d mandatory elements completed.', 'cp'), 'format' => 'true'), $atts, 'module_status'));
            $message = sanitize_text_field($message);
            $format = sanitize_text_field($format);
            $format = 'true' == $format ? true : false;
            if ($course_id) {
                $course_id = (int) $course_id;
            }
            $unit_id = (int) $unit_id;
            if (empty($unit_id)) {
                return '';
            }
            $criteria = Unit::get_module_completion_data($unit_id);
            $unit_status = Unit::get_unit_availability_status($unit_id);
            $unit_available = Unit::is_unit_available($unit_id, $unit_status);
            $input_modules_count = count($criteria['all_input_ids']);
            $assessable_input_modules_count = count($criteria['gradable_modules']);
            $mandatory_input_elements = count($criteria['mandatory_modules']);
            $mandatory_responses = Student_Completion::get_mandatory_steps_completed(get_current_user_id(), $course_id, $unit_id);
            //			$all_responses					 = do_shortcode( '[course_unit_details field="student_module_responses"]' );
            // $is_unit_available				 = do_shortcode( '[course_unit_details field="is_unit_available"]' );
            //			$input_modules_count			 = do_shortcode( '[course_unit_details field="input_modules_count"]' );
            //			$assessable_input_modules_count	 = do_shortcode( '[course_unit_details field="assessable_input_modules_count"]' );
            //			$mandatory_input_elements		 = do_shortcode( '[course_unit_details field="mandatory_input_modules_count"]' );
            //			$mandatory_responses			 = do_shortcode( '[course_unit_details field="student_module_responses" additional="mandatory"]' );
            //			$all_responses					 = do_shortcode( '[course_unit_details field="student_module_responses"]' );
            $unit = new Unit($unit_id);
            $unit->status = $unit_status;
            if ($input_modules_count > 0) {
                ?>
				<span class="unit-archive-single-module-status"><?php 
                if ($unit_available) {
                    if ($mandatory_input_elements > 0) {
                        echo sprintf($message, $mandatory_responses, $mandatory_input_elements);
                    }
                } else {
                    if (isset($unit->status) && $unit->status['mandatory_required']['enabled'] && !$unit->status['mandatory_required']['result'] && !$unit->status['completion_required']['enabled']) {
                        esc_html_e('All mandatory answers are required in previous unit.', 'cp');
                    } elseif (isset($unit->status) && $unit->status['completion_required']['enabled'] && !$unit->status['completion_required']['result']) {
                        esc_html_e('Previous unit must be completed successfully.', 'cp');
                    }
                    if (isset($unit->status) && !$unit->status['date_restriction']['result']) {
                        echo __('Available', 'cp') . ' ' . date_i18n(get_option('date_format'), strtotime(do_shortcode('[course_unit_details field="unit_availability"]')));
                    }
                }
                ?>
</span>
			<?php 
            } else {
                ?>
				<span class="unit-archive-single-module-status"><?php 
                if ($unit_available) {
                    //						 _e('Read-only','cp');
                } else {
                    if (isset($unit->status) && $unit->status['mandatory_required']['enabled'] && !$unit->status['mandatory_required']['result'] && !$unit->status['completion_required']['enabled']) {
                        esc_html_e('All mandatory answers are required in previous unit.', 'cp');
                    } elseif (isset($unit->status) && $unit->status['completion_required']['enabled'] && !$unit->status['completion_required']['result']) {
                        esc_html_e('Previous unit must be completed successfully.', 'cp');
                    }
                    if (isset($unit->status) && !empty($unit->status) && !$unit->status['date_restriction']['result']) {
                        echo __('Available', 'cp') . ' ' . date_i18n(get_option('date_format'), strtotime(do_shortcode('[course_unit_details field="unit_availability"]')));
                    }
                }
                ?>
</span>
			<?php 
            }
            $content = ob_get_clean();
            return $content;
        }