My overriding theme does not work

My overriding theme does not work

by Jose A Valle -
Number of replies: 2

I have a moodle version 3.4.2, with a theme that extend theme_snap version 3.3.3.

These are my files and my directories:

/theme/renderers.php

<?php

defined('MOODLE_INTERNAL') || die;

require_once('renderers/course_renderer.php');

     /theme/renderers/course_renderer.php

<?php

defined('MOODLE_INTERNAL') || die();
require_once($CFG->dirroot . "/course/renderer.php");


class theme_ceca_core_course_renderer extends \core_course_renderer {


/**
* Renderer the course cat course box from the parent
*
* @param coursecat_helper $chelper
* @param int $course
* @param string $additionalclasses
* @return $content
*/
protected function coursecat_coursebox(coursecat_helper $chelper, $course, $additionalclasses = '') {
return "hola";}
The code always execute the code of \course\renderer.php file, not of my theme file.  My config.php theme file has :

$THEME->parents = array('boost');

$THEME->rendererfactory = 'theme_overridden_renderer_factory';

Any Idea?

Thanks

Average of ratings: -
In reply to Jose A Valle

Re: My overriding theme does not work

by Richard Oelmann -
Picture of Core developers Picture of Plugin developers Picture of Testers

Boost already overrides the core course renderer and has the line

class course_renderer extends \core_course_renderer {

Other themes that then extend Boost look something like

namespace theme_waxed\output\core;
defined('MOODLE_INTERNAL') || die();

use moodle_url;

require_once($CFG->dirroot . '/course/renderer.php');

class course_renderer extends \theme_boost\output\core\course_renderer {

See https://gitlab.com/ro-mdl-themes/moodle-theme_waxed/blob/master/classes/output/core/course_renderer.php#L26-40 for example


You also say you are extending Snap, but you only have Boost as a parent - are you extending Snap (using it as a parent) or have you cloned it and customising it?


Richard