ms2 доставка.

Доброго времени суток.
Николай
30 октября 2013, 03:19
modx.pro
883
0

Ajax - getPage

Здравствуйте. Есть обычный обработчик ajax запросов. Там вызывается сниппет getPage и выскакивает ошибка
<b>Fatal error</b>:  Call to a member function getParameters() on a non-object in <b>M:\OpenServer\domains\localhost\API\core\cache\includes\elements\modsnippet\1.include.cache.php</b> on line <b>75</b>
Нарыл в руководстве Боба Рэя ответ
Обычно это означает, что объект $modx не доступен в данном месте вашего кода. Если это код внутри функции, вам следует передать данный объект как:
global $modx;
в начале функции для того, чтобы дать PHP знать, что вы хотите использовать объект $modx извне функции, вместо создания нового.
Если это не сработало, иногда нужно передать $modx в функцию в качестве аргумента.
Вот мой код, куда это вставить? Пробовал в самом начале — не работает.
<?php
header('Content-Type: text/html; charset=utf-8');

function getData($action, $id){
//	global $modx;
	$res;
	
	$mtime = microtime();
	$mtime = explode(" ", $mtime);
	$mtime = $mtime[1] + $mtime[0];
	$tstart = $mtime;
	
	/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */
	if(!defined('MODX_API_MODE')){
		define('MODX_API_MODE', true);
	}

	$modx_cache_disabled = true;

	// подключаем настройки и определим базовый путь для MODX
	require_once '../../config.core.php';

	if(!defined('MODX_CORE_PATH')) define('MODX_CORE_PATH', $_SERVER['DOCUMENT_ROOT'].'/core/');

	// подключаем класс modX
	if(!include_once (MODX_CORE_PATH . "model/modx/modx.class.php")){
		$errorMessage = 'Site temporarily unavailable';
		include(MODX_CORE_PATH . 'error/unavailable.include.php');
		header('HTTP/1.1 503 Service Unavailable');
		echo "<html><title>Error 503: Site temporarily unavailable</title><body><h1>Error 503</h1><p>{$errorMessage}</p></body></html>";
		exit();
	}

	// вывод данных из буфера
	ob_start();
	
	if(empty($options) || !is_array($options)) $options = array();
	$modx = new modX('',$options);
	if(!is_object($modx) || !($modx instanceof modX)){
		ob_end_flush();
		$errorMessage = '<a href="setup/">MODx not installed. Install now?</a>';
		include(MODX_CORE_PATH . 'error/unavailable.include.php');
		header('HTTP/1.1 503 Service Unavailable');
		echo "<html><title>Error 503: Site temporarily unavailable</title><body><h1>Error 503</h1><p>{$errorMessage}</p></body></html>";
		exit();
	}
	
	$modx -> startTime = $tstart;
	$modx -> setLogLevel(modX::LOG_LEVEL_ERROR);
	$modx -> setLogTarget('FILE');
	$modx -> setDebug(E_ALL & ~E_NOTICE);
	$modx -> initialize('web');
	
	$modx -> resource = $modx -> getObject('modResource', $id); //ОЧЕНЬ ВАЖНЫЯ СТРОКА (ПОЛУЧАЕМ ССЫЛКУ НА ТЕКУЩИЙ ОБЪЕКТ ИЗ AJAX ВЫЗОВА)
	/* /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// */
	
	// Вызов нужного метода
	switch($action){
		case 'paging':
			$params['parents'] = $id;
			$params['tpl'] = 'ajaxResources';
			$params['includeTVs'] = 1;
			$params['processTVs'] = 1;
			$params['showHidden'] = 1;
			$params['element'] = 'getResources';
			$params['limit'] = 1;
			$res = $modx -> runSnippet('getPage', $params);
		break;
	}

	if(!empty($res)) {
	  return $res;
	}
}

	// Откликаться будет ТОЛЬКО на ajax запросы
	if($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest'){
		return;
	}

	// сниппет будет обрабатывать не один вид запросов, поэтому работать будем по запрашиваемому действию
	$action = $_GET['action'];

	// Если в массиве POST нет действия - выход
	if (empty($action)){
		return;
	}
	else{
		echo getData($action,(int) $_POST['id']);
	}
?>
Пчеляков Михаил
29 октября 2013, 17:45
modx.pro
1 412
0

проблемы после обновлений

Сегодня обновила Tickets, HybridAuth, PdoTools и после этого видимо какие-то скрипты перестали работать, так как: 1) в галлереи minishop2 при нажатии на изображение — открывается не в сплывающем окне, а в новом, 2) перестали работать кнопки SocialLikes. Я в панике!
Марина Шипилова
29 октября 2013, 16:57
modx.pro
1 133
0

Notice при использовании pdoResources

pdoResources с минимальными параметрами выкидывает уведомление:

Notice: Undefined index: extension_packages in /home/sites/gf2/www/core/components/pdotools/model/pdotools/pdofetch.class.php on line 618

miniShop не установлен.
Прошу поправить.
Igor Ostancov
29 октября 2013, 13:36
modx.pro
745
0

Не проходит оплата через z-payment

Добрый день!
Для работы жизненно важен личный кабинет пользователя в магазине и фильтр.
Купить его не могу, потому что z-payment не обрабатывает платеж.Все доходит до момента отправки 3D secure code в смс.Смс не приходит.
Платежная система пока никакого ответа не дала.
Как быть в такой ситуации?
Yury Polovinkin
29 октября 2013, 12:25
modx.pro
955
0

обновление LikeDislike

Есть такой компонент для голосовалки like.artdevue.com/ru/ Так вот он не работает на 2.2.9 и 2.2.10, соответственно, и я не могу обновиться.
Пётр Молчанов
29 октября 2013, 08:20
modx.pro
1 169
0

Ajax запрос - не работает вывод текущего ресурса

Здравствуйте.
Сразу весь код ajax обработчика(лежит в assets/snippets/ajax.php) подключён как статический файл
<?php
header('Content-Type: text/html; charset=utf-8');
$mtime = microtime();
$mtime = explode(" ", $mtime);
$mtime = $mtime[1] + $mtime[0];
$tstart = $mtime;
if(!defined('MODX_API_MODE')){
	define('MODX_API_MODE', true);
}
$modx_cache_disabled = true;
// подключаем настройки и определим базовый путь для MODX
require_once '../../config.core.php';
require_once MODX_CORE_PATH.'config/'.MODX_CONFIG_KEY.'.inc.php';
require_once MODX_CORE_PATH.'model/modx/filters/modoutputfilter.class.php';

if(!defined('MODX_CORE_PATH')) define('MODX_CORE_PATH', $_SERVER['DOCUMENT_ROOT'].'/core/');

// подключаем класс modX
if(!include_once (MODX_CORE_PATH . "model/modx/modx.class.php")){
    $errorMessage = 'Site temporarily unavailable';
    include(MODX_CORE_PATH . 'error/unavailable.include.php');
    header('HTTP/1.1 503 Service Unavailable');
    echo "<html><title>Error 503: Site temporarily unavailable</title><body><h1>Error 503</h1><p>{$errorMessage}</p></body></html>";
    exit();
}

// вывод данных из буфера
ob_start();

// Создаём экземпляр класса modX
if (empty($options) || !is_array($options)) $options = array();
$modx = new modX('', $options);
if (!is_object($modx) || !($modx instanceof modX)){
    ob_end_flush();
    $errorMessage = '<a href="setup/">MODx not installed. Install now?</a>';
    include(MODX_CORE_PATH . 'error/unavailable.include.php');
    header('HTTP/1.1 503 Service Unavailable');
    echo "<html><title>Error 503: Site temporarily unavailable</title><body><h1>Error 503</h1><p>{$errorMessage}</p></body></html>";
    exit();
}

$modx -> startTime = $tstart;
$modx -> setLogLevel(modX::LOG_LEVEL_ERROR);
$modx -> setLogTarget('FILE');
$modx -> setDebug(E_ALL & ~E_NOTICE);
$modx -> initialize('web');


$modx -> getService('error','error.modError', '', '');
$modx -> getRequest();
$modx -> getParser();

echo $modx -> resource -> get('id');
Проблема: не работает вывод текущего ресурса.
Пишет:
<b>Fatal error</b>:  Call to a member function get() on a non-object in <b>H:\OpenServer\domains\localhost\API\assets\snippets\ajaxResources.php</b> on line <b>65</b>
Вроде пишет что $modx — не объект. Соответственно у него нельзя вызвать метод get. Что делать? Я уже голову сломал. Везде в документации написано что метод get должен работать.
Пчеляков Михаил
29 октября 2013, 07:22
modx.pro
1 092
0

mFilter2. Несколько значений в одном TV.

Пробую применить mFilter под специфику недвижимости.
Роман Ильин
29 октября 2013, 04:50
modx.pro
1 549
0

Передать данные формы в сниппет

Добрый день!
Перекопал много информации, но так четкий ответ и не нашел, буду очень признателен за помощь.
Мне надо сделать ипотечный калькулятор, без модх все делается просто, создаю формы, отправляю из них данные на эту же страницу (или другую, не важно), полученные данные складываю, умножаю, в общем делаю что мне надо и вывожу результат.
А модх делит логику от представления (сниппеты и чанки), получается, что сама форма должна находиться в чанке, а данные обрабатываться в сниппете.
Ну и сам вопрос – как мне из формы (чанк) передать данные в сниппет?
Перетягин Илья
28 октября 2013, 15:14
modx.pro
4
8 349
0