Как добавить класс $modx в свой php файл?
Создал свой файл и поместил на один уровень с index.php, теперь нужно сделать чтоб
нашел вот это:
rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/loading-modx-externally
сделал все вроде правильно, хотя хз, с англ плохо всё) вот что получилось:
$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', '', '');
но делать запросы все равно не получается. Подскажите, где свернул не туда Комментарии: 5
Должен работать.
Вот ещё вариант:
Вот ещё вариант:
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;
Вот шаблон, которым я всегда пользуюсь. В первой строке количество 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');
Далее можно писать код как в любом сниппете.
А если просто сделать статичный сниппет?
К нему разве можно обратиться через site.ru/path/snippet.php?
Примерно так
правда у меня еще куча своих функций и контроллеров под жирные проекты, да и раскидано это по разным файлам.
А вот контроллер под ajax запросы
правда у меня еще куча своих функций и контроллеров под жирные проекты, да и раскидано это по разным файлам.
<?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';
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.