Как добавить класс $modx в свой php файл?

Создал свой файл и поместил на один уровень с index.php, теперь нужно сделать чтоб
$modx->getObject()
стал доступен из него. Чего сделать не получается…

нашел вот это:
rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/loading-modx-externally

сделал все вроде правильно, хотя хз, с англ плохо всё) вот что получилось:

require_once $_SERVER['DOCUMENT_ROOT'] . '/config.core.php';
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');
но делать запросы все равно не получается. Подскажите, где свернул не туда
Данила Ермольчев
16 сентября 2016, 09:18
modx.pro
1
4 273
0

Комментарии: 5

Марат Марабар
16 сентября 2016, 13:42
0
Должен работать.
Вот ещё вариант:
define('MODX_API_MODE', true);
require_once dirname(__FILE__) . '/index.php';
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');

$obj = $modx->getObject('modResource', 1);
if ($obj) {
    $pagetitle = $obj->get('pagetitle');
}
echo $pagetitle;
    Николай
    16 сентября 2016, 14:07
    1
    0
    Вот шаблон, которым я всегда пользуюсь. В первой строке количество dirname должно соответствовать вложенности файла.

    require dirname(dirname(dirname(__FILE__)))."/config.core.php";
    
    if(!defined('MODX_CORE_PATH')) require_once '../../../config.core.php';
    require_once MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php';
    require_once MODX_CORE_PATH.'model/modx/modx.class.php';
    $modx = new modX();
    
    $modx->initialize('web');
    Далее можно писать код как в любом сниппете.
      Игорь Терентьев
      19 сентября 2016, 18:53
      0
      А если просто сделать статичный сниппет?
        Роман Садоян
        19 сентября 2016, 20:28
        0
        К нему разве можно обратиться через site.ru/path/snippet.php?
        but1head
        20 сентября 2016, 00:32
        2
        0
        Примерно так
        правда у меня еще куча своих функций и контроллеров под жирные проекты, да и раскидано это по разным файлам.

        <?php
        define('MODX_API_MODE', true);
        require $_SERVER["DOCUMENT_ROOT"].'/index.php';
        $modx->getService('error','error.modError');
        
        $functions = new _modx($modx);
        $functions->sendMail('mail@site.ru', 'subject', 'message');
        
        class _modx {
        	public $modx;
        	function __construct(modX &$modx){
                $this->modx =& $modx;
        		$this->pdoFetch = $this->modx->getService('pdofetch','pdoFetch', MODX_CORE_PATH . 'components/pdotools/model/pdotools/', array());
        	}
        
        	function sendMail($email, $subject, $body = ''){
        		$mail = $this->modx->getService('mail', 'mail.modPHPMailer');
        	    $mail->setHTML(true);
        	    $mail->address('to', trim($email));
        	    $mail->set(modMail::MAIL_SUBJECT, trim($subject));
        	    $mail->set(modMail::MAIL_BODY, $body);
        	    $mail->set(modMail::MAIL_FROM, $this->modx->getOption('emailsender'));
        	    $mail->set(modMail::MAIL_FROM_NAME, $this->modx->getOption('site_name'));
        	    if (!$mail->send()) {
        	        $modx->log(modX::LOG_LEVEL_ERROR,
        	            'An error occurred while trying to send the email: ' . $mail->mailer->ErrorInfo
        	        );
        	    }
        	    $mail->reset();
        	}
        }

        А вот контроллер под ajax запросы
        <?php
        if(!is_ajax() && !$_POST['action']) die('Request error');
        $action = strip_tags($_POST['action']);
        require_once($_SERVER["DOCUMENT_ROOT"].'/***/api.php');
        require_once($_SERVER["DOCUMENT_ROOT"].'/***/functions.php');
        
        
        switch($action){
        
        }
        
        
        
        function is_ajax() {
        	return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
        }
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          5