Процессор не найден: mgr/name/getlist
        Добрый день!
Создаю админку для своего компонента по статье.Возникла проблема вывода грида полей объекта. Экшн прописан как в статье      
    
    
                                                                                
            Создаю админку для своего компонента по статье.
baseParams: { action: 'mgr/name/getList' } Процессор на фоходится в core/components/component_name/processors/mgr/name/getList.class.php. «Сеть» файрбага показывает, что файл assets/components/component_name/connector.php возвращиет сообщение Процессор не найден: mgr/name/getlistПодскажите, что могло пойти не так или хотя бы как можно найти где допущена ошибка. Заранее благодарен.Комментарии: 17
                Неужели никто не разбирался, как построена админка и пользуются modExtra'ми или Doodles'ами?            
                    
                Попробуйте переименовать файл процессора в getlist.class.php (все буквы строчные)            
                    
                Спасибо, что откликнулись) имя файла состоит только из строчных букв, здесь просто опечатка
            
                    
                А можно посмотреть на файлы
core/components/component_name/index.class.php
и
core/components/component_name/controllers/home.class.php
                    core/components/component_name/index.class.php
и
core/components/component_name/controllers/home.class.php
                home.class.php 
                    <?php
class CoursesHomeManagerController extends CoursesManagerController
{
	public function process(array $scriptProperties = array()){}
	public function getPageTitle() { return $this->modx->lexicon('courses'); }
	public function loadCustomCssJs()
	{
		$this->addJavascript($this->courses->config['jsUrl'].'mgr/widgets/courses.grid.js');
		$this->addJavascript($this->courses->config['jsUrl'].'mgr/widgets/home.panel.js');
		$this->addLastJavascript($this->courses->config['jsUrl'].'mgr/sections/index.js');
	}
	public function getTemplateFile() { return $this->courses->config['templatesPath'].'home.tpl'; }
}index.class.php <?php
require_once dirname(__FILE__) . '/model/courses/courses.class.php';
abstract class CoursesManagerController extends modExtraManagerController {
    public $courses;
    public function initialize() {
        $this->courses = new Courses($this->modx);
        $this->addJavascript($this->courses->config['jsUrl'].'mgr/courses.js');
        $this->addHtml('<script type="text/javascript">
        Ext.onReady(function() {
            Courses.config = '.$this->modx->toJSON($this->courses->config).';
        });
        </script>');
        return parent::initialize();
    }
    public function getLanguageTopics() {
        return array('courses:default');
    }
    public function checkPermissions() { return true;}
}
class IndexManagerController extends CoursesManagerController
{
    public static function getDefaultController() { return 'home'; }
}Courses — это мой компонент. Вроде все как надо… сравнивал с quip'ом — вроде все по аналогии. Но вполне возможно, что я не замечаю пустячной детали            
                Ой, извиняюсь, в первую очередь интересен файл /model/courses/courses.class.php — есть ли там указание processorsPath?            
                    
                конструктор выглядит так:
                    function __construct(modX &$modx, array $config = array())
	{
        $this->modx =& $modx;
        $basePath = $this->modx->getOption('courses.core_path',$config,$this->modx->getOption('core_path').'components/courses/');
		$assetsUrl = $this->modx->getOption('courses.assets_url',$config,$this->modx->getOption('assets_url').'components/courses/');
        $this->config = array_merge(array(
			'basePath' => $basePath,
			'corePath' => $basePath,
			'modelPath' => $basePath.'model/',
			'processorsPath' => $basePath.'processors/',
			'templatesPath' => $basePath.'templates/',
			'chunksPath' => $basePath.'elements/chunks/',
			'jsUrl' => $assetsUrl.'js/',
			'cssUrl' => $assetsUrl.'css/',
			'assetsUrl' => $assetsUrl,
			'connectorUrl' => $assetsUrl.'connector.php',
        ),$config);
        $this->modx->addPackage('courses', $this->config['modelPath']);
        if ($this->modx->lexicon)
		{
            $this->modx->lexicon->load('courses:default');
        }
    }При этом echo $this->config["processorsPath"]; выдает правильный путь к процессорам            
                На первый взгляд, все верно… Попробуйте, все-таки, сделать на основе modExtra…            
                    
                Но, если рассудить логически, то раз ошибок javascript'a нет, панель подгружается, даже грид подгружается — то в javascript'e нет ошибок. Что может влиять на то, что процессор не грузится? — пути к файлам. Тогда возникает вопрос: откуда начинаются формирование пути в action? От processorsPath?
            
                    
                А в connector.php что?
В modExtra путь к процессору указывается там https://github.com/bezumkin/modExtra/blob/master/assets/components/modextra/connector.php#L16
                    В modExtra путь к процессору указывается там https://github.com/bezumkin/modExtra/blob/master/assets/components/modextra/connector.php#L16
                Спасибо, что не обошли стороной данный вопрос и решели помочь) В коннекторе 
                    <?php
require_once dirname(dirname(dirname(dirname(__FILE__)))).'/config.core.php';
require_once MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php';
require_once MODX_CONNECTORS_PATH.'index.php';
 
$corePath = $modx->getOption('courses.core_path',null,$modx->getOption('core_path').'components/courses/');
require_once $corePath.'model/courses/courses.class.php';
$modx->courses = new Courses($modx);
$modx->lexicon->load('courses:default');
$path = $modx->getOption('processorsPath', $modx->courses->config, $corePath.'processors/');
$modx->request->handleRequest(array(
    'processorsPath' => $path,
    'location' => '',
));            
                Сейчас заметил, что прямое обращение из браузера к файлу хост/core/components/courses/processors/mgr/course/getlist.class.php возвращает ошибку 
                    Fatal error: Class 'modObjectGetListProcessor' not found in хост\core\components\courses\processors\mgr\course\getlist.class.php on line 3 Но наверное эта ошибка появляется из-за того, что обращаемся к процессору не через коннектор?            
                Да, MODX не проинициализирован
В коннекторе вроде все верно.
В JS baseParams: { action: 'mgr/course/getlist' } все-таки с маленькой буквы?
В процессоре имя класса в конце указано, как в modExtra?
github.com/bezumkin/modExtra/blob/master/core/components/modextra/processors/mgr/item/getlist.class.php#L36
                    В коннекторе вроде все верно.
В JS baseParams: { action: 'mgr/course/getlist' } все-таки с маленькой буквы?
В процессоре имя класса в конце указано, как в modExtra?
github.com/bezumkin/modExtra/blob/master/core/components/modextra/processors/mgr/item/getlist.class.php#L36
                getlist точно с прописными буквами, код процессора ниже            
                    
                Ну и сам процессор теперь покажите. В последней стрчке есть возвращение имени класса?
                    return 'courseItemGetListProcessor';            
                Код процессора выглядит следующим образом:
                    <?php
class CourseGetListProcessor extends modObjectGetListProcessor
{
    public $classKey = 'Courses';
    public $languageTopics = array('courses:default');
    public $defaultSortField = 'title';
    public $defaultSortDirection = 'ASC';
    public $objectType = 'courses.course';
}
return 'CourseGetListProcessor';            
                Все таки решил перейти на modExtra, а уже там разобраться с тонкостями работы.            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.