OK Solved. For some reason I'm oblivious to, my controller wasn't allowed to be called IndexManagerController however AnythingIndexManagerController was fine. Or more specifically: DoodlesIndexManagerController.
To get it working beyond that, I removed the abstract class declaration and extended the modExtraManagerController directly as Mark had recommended in that other thread linked above.
In the hope it helps anyone else having trouble:
- I deleted home.class.php from /www/doodles/core/components/doodles/controllers/
- I moved index.class.php from /www/doodles/core/components/doodles/ to /www/doodles/core/components/doodles/controllers/
The new contents of the index.class.php file should be:
<?php
require_once dirname(dirname(__FILE__)) . '/model/doodles/doodles.class.php';
/**
* @package doodles
*/
class DoodlesIndexManagerController extends modExtraManagerController {
/** @var Doodles $doodles */
public $doodles;
public function initialize() {
$this->doodles = new Doodles($this->modx);
$this->addCss($this->doodles->config['cssUrl'].'mgr.css');
$this->addJavascript($this->doodles->config['jsUrl'].'mgr/doodles.js');
$this->addHtml('<script type="text/javascript">
Ext.onReady(function() {
Doodles.config = '.$this->modx->toJSON($this->doodles->config).';
});
</script>');
return parent::initialize();
}
public function getLanguageTopics() {
return array('doodles:default');
}
public function checkPermissions() { return true;}
public function process(array $scriptProperties = array()) {}
public function getPageTitle() { return $this->modx->lexicon('doodles'); }
public function loadCustomCssJs() {
$this->addJavascript($this->doodles->config['jsUrl'].'mgr/widgets/doodles.grid.js');
$this->addJavascript($this->doodles->config['jsUrl'].'mgr/widgets/home.panel.js');
$this->addLastJavascript($this->doodles->config['jsUrl'].'mgr/sections/index.js');
}
public function getTemplateFile() {
return $this->doodles->config['templatesPath'].'home.tpl';
}
}