protected function specific_definition($mform)
 {
     global $CFG, $PAGE;
     require_once $CFG->dirroot . '/local/moodec/lib.php';
     // Fields for editing HTML block title and contents.
     $mform->addElement('header', 'configheader', get_string('blocksettings', 'block'));
     // Add number of courses to display selection
     $mform->addElement('select', 'config_courses_shown', get_string('courses_shown', 'block_moodec_courses'), array(1 => 1, 2 => 2, 3 => 3, 4 => 4));
     $mform->setType('config_courses_shown', PARAM_INT);
     // Add show image checkbox
     $mform->addElement('advcheckbox', 'config_show_image', get_string('show_image', 'block_moodec_courses'), get_string('show_image_label', 'block_moodec_courses'));
     $mform->setType('config_show_image', PARAM_INT);
     // Add show description checkbox
     $mform->addElement('advcheckbox', 'config_show_description', get_string('show_description', 'block_moodec_courses'), get_string('show_description_label', 'block_moodec_courses'));
     $mform->setType('config_show_description', PARAM_INT);
     // Add show price checkbox
     $mform->addElement('advcheckbox', 'config_show_price', get_string('show_price', 'block_moodec_courses'), get_string('show_price_label', 'block_moodec_courses'));
     $mform->setType('config_show_price', PARAM_INT);
     // Add display method selection
     $mform->addElement('select', 'config_course_selection', get_string('course_selection', 'block_moodec_courses'), array(0 => get_string('select_latest_courses', 'block_moodec_courses'), 1 => get_string('select_random_courses', 'block_moodec_courses'), 2 => get_string('select_manual_courses', 'block_moodec_courses')));
     $mform->setType('config_course_selection', PARAM_INT);
     // Get all products and store in an array of ID and fullname
     $products = local_moodec_get_products(-1, null, 'fullname', 'ASC');
     $allProducts = array();
     foreach ($products as $p) {
         $allProducts[$p->get_id()] = $p->get_fullname();
     }
     // Add manual course selection 1
     $mform->addElement('select', 'config_manual_course_1', get_string('manual_course_selection', 'block_moodec_courses', array('id' => 1)), $allProducts);
     $mform->setType('config_manual_course_1', PARAM_INT);
     $mform->disabledif('config_manual_course_1', 'config_course_selection', 'neq', 2);
     // Add manual course selection 2
     $mform->addElement('select', 'config_manual_course_2', get_string('manual_course_selection', 'block_moodec_courses', array('id' => 2)), $allProducts);
     $mform->setType('config_manual_course_2', PARAM_INT);
     $mform->disabledif('config_manual_course_2', 'config_course_selection', 'neq', 2);
     $mform->disabledif('config_manual_course_2', 'config_courses_shown', 'eq', 1);
     // Add manual course selection 3
     $mform->addElement('select', 'config_manual_course_3', get_string('manual_course_selection', 'block_moodec_courses', array('id' => 3)), $allProducts);
     $mform->setType('config_manual_course_3', PARAM_INT);
     $mform->disabledif('config_manual_course_3', 'config_course_selection', 'neq', 2);
     $mform->disabledif('config_manual_course_3', 'config_courses_shown', 'eq', 1);
     $mform->disabledif('config_manual_course_3', 'config_courses_shown', 'eq', 2);
     // Add manual course selection 4
     $mform->addElement('select', 'config_manual_course_4', get_string('manual_course_selection', 'block_moodec_courses', array('id' => 4)), $allProducts);
     $mform->setType('config_manual_course_4', PARAM_INT);
     $mform->disabledif('config_manual_course_4', 'config_course_selection', 'neq', 2);
     $mform->disabledif('config_manual_course_4', 'config_courses_shown', 'eq', 1);
     $mform->disabledif('config_manual_course_4', 'config_courses_shown', 'eq', 2);
     $mform->disabledif('config_manual_course_4', 'config_courses_shown', 'eq', 3);
     $PAGE->requires->jquery();
     $PAGE->requires->js(new moodle_url($CFG->wwwroot . '/blocks/moodec_courses/edit_form.js'));
 }
Example #2
0
/**
 * Extend the default Moodle navigation
 * @param  global_navigation $nav
 * @return void                 
 */
function local_moodec_extends_navigation(global_navigation $nav)
{
    global $CFG, $PAGE, $DB;
    // Add store container to menu
    $storenode = $PAGE->navigation->add(get_string('catalogue_title', 'local_moodec'), new moodle_url($CFG->wwwroot . '/local/moodec/pages/catalogue.php'), navigation_node::TYPE_CONTAINER);
    if (!!get_config('local_moodec', 'page_product_enable')) {
        // We store the courses by category
        // but only get categories with active products
        $query = sprintf('SELECT DISTINCT 
					cc.id, 
					cc.visible,
					cc.name
			FROM	{course_categories} cc, 
					{course} c, 
					{local_moodec_product} lmp
			WHERE 	cc.id = c.category
			AND 	c.id = lmp.course_id
			AND 	lmp.is_enabled = 1');
        $categories = $DB->get_records_sql($query);
        if (!!$categories) {
            foreach ($categories as $category) {
                if ($category->visible) {
                    $catnode = $storenode->add($category->name, new moodle_url($CFG->wwwroot . '/local/moodec/pages/catalogue.php', array('category' => $category->id)), navigation_node::TYPE_CONTAINER);
                    // Actually get the products
                    $products = local_moodec_get_products(-1, $category->id, 'fullname');
                    // Add products to the store menu
                    foreach ($products as $product) {
                        $catnode->add($product->get_fullname(), new moodle_url($CFG->wwwroot . '/local/moodec/pages/product.php', array('id' => $product->get_id())));
                    }
                }
            }
        }
    }
    // Add cart page to menu
    $PAGE->navigation->add(get_string('cart_title', 'local_moodec'), new moodle_url($CFG->wwwroot . '/local/moodec/pages/cart.php'));
    // Add transactions page to menu
    $PAGE->navigation->add(get_string('transactions_title', 'local_moodec'), new moodle_url($CFG->wwwroot . '/local/moodec/pages/transaction/index.php'));
}
 /**
  * Return contents of moodec_courses block
  *
  * @return stdClass contents of block
  */
 public function get_content()
 {
     global $USER, $CFG, $DB;
     require_once $CFG->dirroot . '/local/moodec/lib.php';
     if ($this->content !== NULL) {
         return $this->content;
     }
     // $config = get_config('block_moodec_courses');
     $this->content = new stdClass();
     $this->content->text = '';
     $this->content->footer = '';
     if (!empty($this->config)) {
         // Check config for which courses to select
         if ((int) $this->config->course_selection === 0) {
             // Return latest courses
             $products = local_moodec_get_products(-1, null, 'timecreated', 'DESC');
             $products = array_slice($products, 0, $this->config->courses_shown);
         } elseif ((int) $this->config->course_selection === 1) {
             // Return random courses
             $products = local_moodec_get_random_products($this->config->courses_shown);
         } else {
             // TODO: Add return manual courses
             $products = array();
             for ($i = 1; $i <= $this->config->courses_shown; $i++) {
                 $manual = 'manual_course_' . $i;
                 $newProduct = local_moodec_get_product((int) $this->config->{$manual});
                 if (!!$newProduct) {
                     $products[] = $newProduct;
                 }
             }
         }
         // Render HTML
         $renderer = $this->page->get_renderer('block_moodec_courses');
         $this->content->text = $renderer->output_products($products, $this->config);
     }
     return $this->content;
 }
Example #4
0
    } else {
        $PAGE->set_pagelayout('standard');
    }
}
$PAGE->set_title(get_string('catalogue_title', 'local_moodec'));
$PAGE->set_heading(get_string('catalogue_title', 'local_moodec'));
$PAGE->requires->jquery();
$PAGE->requires->js(new moodle_url($CFG->wwwroot . '/local/moodec/js/catalogue.js'));
// Get the renderer for this page
$renderer = $PAGE->get_renderer('local_moodec');
list($sortfield, $sortorder) = local_moodec_extract_sort_vars($sort);
echo $OUTPUT->header();
?>

<h1 class="page__title"><?php 
echo get_string('catalogue_title', 'local_moodec');
?>
</h1>

<?php 
// Render catalogue filter bar
echo $renderer->filter_bar($categoryID, $sort);
// Get the products for this page
$products = local_moodec_get_products($page, $categoryID, $sortfield, $sortorder);
// Outputs this page of products
echo $renderer->catalogue($products);
// Get all products matching the filter parameters
$allProducts = local_moodec_get_products(-1, $categoryID, $sortfield, $sortorder);
// Pass them to the pagination function
echo $renderer->pagination($allProducts, $page, $categoryID, $sort);
echo $OUTPUT->footer();