bazgyrt 27 июня 2013 0 9
Здравствуйте все!
Захотелось очень разобраться в процессорах MODX, но сразу возникла проблема…
Вообще не могу никак правильно запустить процессор, к примеру выложу код php файла.

<?php
require_once dirname(__FILE__).'/../../../../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();

$response = $modx->runProcessor('element/chunk/create',array(
   'name' => 'NewChunk',
   'description' => 'A test Chunk made with runProcessor.',
   'snippet' => '<h3>Chunkify!</h3>',
));
if ($response->isError()) {
    echo $response->getMessage();
}
$chunkArray = $response->getObject();
echo 'The chunk "'.$chunkArray['name'].' was created with ID '.$chunkArray['id'];
?>


Этот код находиться просто в php файле. Запускаю я его просто при обращении к нему напрямую через браузер.
Процессор создания чанка взял из доков MODX'a.
При обращении ничего не происходит… Ошибка не выводиться, и чанк не создается…
Что я делаю не так? Может быть как то по другому запускать надо? Или нет каких либо прав доступа?
9 комментариев
Q
Qwarble 27 июня 2013г в 12:55 #
Когда вы вызываете процессор идет проверка прав доступа, а это невозможно без инициализации контекста. Попробуйте скопировать строчку из индексного файла modx, где инициализируется контекст web и вставить ее в свой файл по аналогии.
bazgyrt1
bazgyrt 27 июня 2013г в 13:04 #
$modx->initialize('web');

Вы про эту строчку? Тоже не помогло(
bazgyrt1
bazgyrt 27 июня 2013г в 13:23 #
Похоже разобрался… все дело из за локалки, пути не правильно выдаются, опробывал на хостинге в modx cloud и все заработало.
bazgyrt1
bazgyrt 27 июня 2013г в 16:14 #
Может сможете еще подсказать? Запуская с админки процессор удаления объекта (в процессоре объект находиться при помощи функции $modx->getObject) все работает нормально, без ошибок. А вот если я запускаю этот процесс по время в процессе создания ресурса он не срабатывает. Долго не мог понять в чем дело, в конце концов понял что не в этом случае не работает метод $modx->getObject. Может он не подключен? Или что то еще?
Fi1osof1
Fi1osof 27 июня 2013г в 16:53 #
Асиф, приводи в таких случаях полные листинги кода (можно на gist.github.com/ ), чтобы легче можно было сориентироваться.
Второе: когда занимаешься такими экспериментами, включай вывод ошибок. К примеру, пропиши в первичном выполняемом файле так:
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', 1);

Если будут критические ошибки, ты их увидишь. К примеру в первой проблеме ты увидел бы критическую ошибку, что путь не был получен.
Еще сразу после инициализации $modx можно прописать так:
$modx->setLogLevel(3);
$modx->setLogTarget('HTML');

Это заставит MODX выводить собственные ошибки на страницу. К примеру, если MODX не смог найти файл процессора, или класс подключить, он просто так ничего тебе не скажет, а пых-пыху тоже на это ровно. А так тебе выведется сообщение о том, что файл не найден.

Ты еще только начинаешь изучать программирование, и тебе важно научиться выполнять отладку кода.
bazgyrt1
bazgyrt 27 июня 2013г в 20:42 #
Спасибо большое!) Такими функциями я не пользовался. А можно в индексный файл modx поместить

$modx->setLogLevel(3);
$modx->setLogTarget('HTML');
</code></pre>Для того что бы везде выводились ошибки? Или такое не прокатит?

А с ошибкой разобрался, оказывается Илья уже задавался этим вопросом, просто на другом сайте) Необходимо было подключить модель таблицы

$modx->addPackage('ditsnews', $modx->getOption('core_path').'components/ditsnews/model/ditsnews/');
Fi1osof1
Fi1osof 27 июня 2013г в 20:59 #
А можно в индексный файл modx поместить
Можно. Но надо учитывать, что запроссы на коннекторы не проходят через индексный файл, и админка тоже. Потому есть еще одно надежное место — сам файл config.

А с ошибкой разобрался, оказывается Илья уже задавался этим вопросом, просто на другом сайте) Необходимо было подключить модель таблицы
Вот эта еще информация будет полезна: community.modx-cms.ru/blog/documentation/9226.html
bazgyrt1
bazgyrt 28 июня 2013г в 09:58 #
Статью почитал, спасибо что делишься опытом))
Fi1osof1
Fi1osof 28 июня 2013г в 10:57 #
Пожалуйста.
Авторизуйтесь или зарегистрируйтесь (можно через соцсети ), чтобы оставлять комментарии.