Не видит новый модуль после его создания

Всем привет. Возникла небольшая проблемка: создал в своем плагине новый модуль, Mymodule (от Module). Затем добавил к нему маппер (от Mapper). Далее пытаюсь в методе Exec блока MyBlock вызвать метод модуля, вот так:
$aData = $this->ModuleMymodule_getData();

Но это вызывает ошибку Class «ModuleMymodule» not found!. Причем если дописать в aInherits нужную строку, ошибка меняется на Class «PluginMyPlugin_ModuleMymodule» not found!.

Собственно, код объявления модулей
class PluginMyPlugin_ModuleMymodule extends Module {
	protected $_oMapper;

   	public function Init() {
   		$this->_oMapper = Engine::GetMapper(__CLASS__);
   	}
    // some functions
}

class PluginMyPlugin_ModuleMymodule_MapperMymodule extends Mapper {
// some functions
}


Код блока:
class PluginMyPlugin_BlockMyBlock extends Block {
    public function Exec() {
    	$aData = $this->ModuleMymodule_getData(); //эта строка вызывает ошибку
// some code
}
}


Пути к файлам вроде бы тоже все полностью верны:
— myplugin/classes/actions/modules/mymodule/Mymodule.class.php
— myplugin/classes/actions/modules/mymodule/mapper/Mymodule.mapper.class.php

Не могу понять, что я сделал не так. Делал в полной аналогии с другими плагинами, в которых используются новые модули, но почему-то LS не видит его… помогите найти ошибку, пожалуйста.

2 комментария

avatar
это:
$aData = $this->ModuleMymodule_getData();

вызов модуля из движка, если вы делаете плагин, то нужно указывать это:
$aData = $this->PluginMypluginname_Mymodule_GetData();


Причем если дописать в aInherits нужную строку
в aInherits ничего не нужно писать если вы не собираетесь наследовать что-то из движка.

Пути к файлам вроде бы тоже все полностью верны:
нет, папка плагина «myplugin» для класса:
class PluginMyplugin extends Plugin {...}

а для
class PluginMyPlugin

папка должна быть «my_plugin»
avatar
Спасибо, разобрался с проблемой!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.