Как использовать $modx в подключаемом php файле?

Приветствую!
Столкнулся с следующей проблемой:
Не получается вывести системную настройку в костюмном классе обработки доставки, код пример брал из документации — все работает пока не пытаюсь получить системную настройку:
<?php
if(!class_exists('msDeliveryInterface')) {
    require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}
class Delivery extends msDeliveryHandler implements msDeliveryInterface{

    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {

        $mdcf = 200;
        $cart = $order->ms2->cart->status();
        $cart_cost = $cart['total_cost'];

        if($cart_cost > $mdcf){
            return $cost;
        }else{
            $delivery_cost = parent::getCost($order, $delivery, $cost);
            return $delivery_cost;
        }
    }
}
Суть сводится к тому чтобы сделать бесплатной доставку при стоимости корзины больше 200, и я хочу эти 200 вывести в системных настройках чтобы менять их там для удобства. Но вот столкнулся с тем, что не работает $modx->getOption и сайт просто ложится и выводит пустую белую страницу код использую такой:

<?php
if(!class_exists('msDeliveryInterface')) {
    require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}
require_once $_SERVER['DOCUMENT_ROOT'].'/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
class Delivery extends msDeliveryHandler implements msDeliveryInterface{

    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {

        $mdcf = $modx->getOption('md_delivery_cf');
        $cart = $order->ms2->cart->status();
        $cart_cost = $cart['total_cost'];

        if($cart_cost > $mdcf){
            return $cost;
        }else{
            $delivery_cost = parent::getCost($order, $delivery, $cost);
            return $delivery_cost;
        }
    }
}
Вячеслав Варов
28 мая 2019, 10:44
modx.pro
930
0

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

Dmitry P.
28 мая 2019, 10:52
+1
попробуй вызвать через $this->modx

а вообще, чтоб в любом файле подключить $modx, у меня работает такой код:
define('MODX_API_MODE', true);
require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/index.php'; //путь до index.php, который лежит в корне

$modx->getService('error', 'error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1