Как подключить свой контроллер в сниппете
        Хочу создать класс для работы с внесением корректировок в данные в MySQL. Думаю это реализовать через отдельный класс, так как часто используется в разных сниппетах и с разными данными. В контроллере home.class.php (изначально на modExtra) удалил все и написал свой класс:
    
    
                                                                                
            <?php
class NewEraChanges {
	public $object = '';
	public $old = '';
	public $new = '';
	public $date_add = '';
	public $date_accept = '';
	public $user_add = '';
	public $user_accept = '';
	public function ChangesArray() {
		echo $this->old;
	}
}Пытаюсь вызвать в сниппете, но пишет, что не найден такой класс. Я так понял, что дело в том, что я его не подключил. Как это правильно сделать? Во всех сниппетах его отдельно подключать, или как-то можно 1 раз подключить для всех?<?php
/** @var array $scriptProperties */
/** @var new_era $new_era */
if (!$new_era = $modx->getService('new_era', 'new_era', $modx->getOption('new_era_core_path', null, $modx->getOption('core_path') . 'components/new_era/') . 'model/new_era/', $scriptProperties)) {
	return 'Could not load new_era class!';
}
setlocale(LC_ALL, "ru_RU.UTF-8");
include('pChart/class/pData.class.php');
include('pChart/class/pDraw.class.php');
include('pChart/class/pImage.class.php');
// Dataset definition
$a = new NewEraChanges();
$a->old = '11';
$a->ChangesArray();Заранее благодарен!    Комментарии: 6
                И что прописать в class… extend ??? чтобы работали $modx->newObject, $modx->set/save и т.д.            
                    
                Почитав интернет, вроде как понял, что классы надо не в контроллере, а в моделе прописывать. Но тогда возникает вопрос, как подключить класс из модели?
Думаю, что решение в getSevice. Прописал(Имя класса и объекта newEraChanges):
                    Думаю, что решение в getSevice. Прописал(Имя класса и объекта newEraChanges):
if (!$newEraChanges = $modx->getService('newEraChanges', 'newEraChanges', $modx->getOption('new_era_core_path', null, $modx->getOption('core_path') . 'components/new_era/') . 'model/new_era/', $scriptProperties)) {
	return 'Could not load newEraChanges class!';
}Но не работает            
                Решил проблему подключив напрямую, но может можно как то более правильно это сделать?
                    require_once MODX_CORE_PATH.'components/new_era/model/new_era/newerachange.class.php';            
                Но 
                    $modx->user->get('id') Не работает            
                Потому что внутри класса обращаться надо через this.
                    $this->modx->user->get('id')            
                А подключать через require_once? Или как-то по иному лучше?
            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.