/**
  * Render image upload page (including header / footer).
  *
  * @param int $id block instance id
  * @return string
  */
 public function page_uploadimage($id)
 {
     $out = '';
     // Make sure the moodle editmode is off.
     helper::force_no_editing_mode();
     $mform = new block_coupon\forms\imageupload($this->page->url);
     if ($mform->is_cancelled()) {
         redirect(new moodle_url('/course/view.php', array('id' => $this->page->course->id)));
     } else {
         if ($data = $mform->get_data()) {
             $fn = $mform->get_new_filename('userfile');
             $file = BLOCK_COUPON_LOGOFILE;
             $saved = $mform->save_file('userfile', $file, true);
             $sizeinfo = getimagesize($file);
             if ($sizeinfo) {
                 list($w, $h, $itype, $tagwh) = $sizeinfo;
                 $errormargin = 5 / 100;
                 // Have 5% margin.
                 $desiredratio = 210 / 297;
                 $ratio = $w / $h;
                 if ($ratio < $desiredratio - $errormargin * $desiredratio || $ratio > $desiredratio + $errormargin * $desiredratio) {
                     @unlink($file);
                     print_error('error:wrong_image_size', 'block_coupon');
                 }
             }
             redirect(new moodle_url('/course/view.php', array('id' => $this->page->course->id)), get_string('success:uploadimage', 'block_coupon'));
         } else {
             $out .= $this->header();
             $out .= html_writer::start_div('block-coupon-container');
             $out .= html_writer::start_div();
             $out .= $this->get_tabs($this->page->context, 'wzcouponimage', array('id' => $id));
             $out .= html_writer::end_div();
             $out .= $mform->render();
             $out .= html_writer::end_div();
             $out .= $this->footer();
         }
     }
     return $out;
 }
 * @author      R.J. van Dongen <*****@*****.**>
 * @license     http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */
require_once dirname(__FILE__) . '/../../../config.php';
require_once $CFG->dirroot . '/blocks/coupon/classes/settings.php';
use block_coupon\helper;
$id = required_param('id', PARAM_INT);
$instance = $DB->get_record('block_instances', array('id' => $id), '*', MUST_EXIST);
$context = \context_block::instance($instance->id);
$coursecontext = $context->get_course_context(false);
$course = false;
if ($coursecontext !== false) {
    $course = $DB->get_record("course", array("id" => $coursecontext->instanceid));
}
if ($course === false) {
    $course = get_site();
}
require_login($course, true);
$PAGE->navbar->add(get_string('page:generate_coupon_step_four.php:title', 'block_coupon'));
$url = new moodle_url('/blocks/coupon/view/generate_coupon_step_four.php', array('id' => $id));
$PAGE->set_url($url);
$PAGE->set_title(get_string('view:generate_coupon:title', 'block_coupon'));
$PAGE->set_heading(get_string('view:generate_coupon:heading', 'block_coupon'));
$PAGE->set_context($context);
$PAGE->set_course($course);
$PAGE->set_pagelayout('standard');
// Make sure the moodle editmode is off.
helper::force_no_editing_mode();
require_capability('block/coupon:generatecoupons', $context);
$renderer = $PAGE->get_renderer('block_coupon');
echo $renderer->page_coupon_generator_step4();