Всего 122 819 комментариев

Василий Наумкин
01 июля 2012, 06:55
0
Нет, конечно — в этом и смысл.
Иван Брежнев
01 июля 2012, 06:54
0
Глянул что в базе данных настройки сниппетов хранятся в сериализованном виде, можно их и одним запросом достать, и не будет объекта modSnippet. Но тут получается зачем нам тогда API MODX

Хочется делать сразу более менее оптимально
Иван Брежнев
01 июля 2012, 06:52
0
А после обновления оригинального класса придется менять и измененный класс?
Иван Брежнев
01 июля 2012, 06:31
0
Да что-то я лоханулся, он же из сниппета настройки тянет
Иван Брежнев
01 июля 2012, 06:30
0
Точно) Спасибо огромное ))
Василий Наумкин
01 июля 2012, 06:26
0
Вы просто забыли про $scriptProperties.

https://gist.github.com/3026530
Иван Брежнев
01 июля 2012, 06:03
0
var_dump($modx->miniShop->getCart()); // в сниппете выводит string(34) «Ваша корзина пуста»

Если просто во внешнем файле лежащем в корне сайта, то ничего не выводит
Иван Брежнев
01 июля 2012, 05:56
0
У меня там много методов я просто их опустил, решил что вы это поймете.

Если код инициализации Службы вставить в сниппет то все заводится.
Василий Наумкин
01 июля 2012, 03:47
0
Лично я переименовываю miniShop в miniShopExt, меняю вызов класса и дописываю нужные методы, а все параметры остаются.

А ваш метод ничем не хуже, главное, чтобы сниппет miniShop никуда не делся, иначе будет fatal error.
Ну и минимум на пару операций с БД выходит больше (достать сниппет, а потом его параметры).
Василий Наумкин
01 июля 2012, 03:42
0
И что тут должно произойти? Где вызов хоть какого то метода из miniShop?

Вы просто запустили класс и он ничего не делает. Если команда getService выполнена с ошибкой — она будет в системном журнале. Если нет — везде пусто.
Иван Брежнев
01 июля 2012, 02:01
0
Разобрался, эти настройки берутся из сниппета, а у меня все аяксовые запросы выполняются через свой сниппет у которого никаких настроек не прописано.

Сделал вот так в расширении класса miniShopExt. Работает. Если это не правильно поправьте

function __construct(modX &$modx, array $config = array()) {
$snippet = $modx->getObject('modSnippet',array('name'=>'miniShop'));
$config = array_merge($snippet->getProperties(),$config);
parent::__construct($modx, $config);
}
Иван Брежнев
01 июля 2012, 00:52
0
Почему вот такая конструкция не работает в классе miniShopExt

$this->config['tplPaymentRow'] и аналогичные
Иван Брежнев
01 июля 2012, 00:09
0
Делаю вот так

// Подключаем
define('MODX_API_MODE', true);
require 'index.php';

// Включаем обработку ​ошибок
$modx->getService('error','error.modError'​;);
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
$modx->setLogTa​rget(XPDO_CLI_MODE? 'ECHO': 'HTML');

if ​(!isset($modx->miniShop) || !is_object($modx->miniShop)) {
​$modx->getService('minishopext','miniShopExt', ​$modx->getOption('core_path').'components/minishop/model/​minishop/', $scriptProperties);
if (!($modx->miniShop ​instanceof miniShopExt)) return '';
}

И ​ничего не происходит (
Иван Брежнев
30 июня 2012, 17:37
0
Класс) То что я искал!
Мегареспект
Василий Наумкин
30 июня 2012, 01:05
0
Даже не знаю, что вам ответить.

Видимо, моя инструкция не такая уж и хорошая =(
30 июня 2012, 01:01
0
Но судя по статистике нагрузка CPU 10-12%; ОЗУ 9-14%
Иван Брежнев
28 июня 2012, 06:34
0
Спасибо. Экспериментировал. Раздумываю как удобнее лично для меня будет
Василий Наумкин
28 июня 2012, 05:17
0
Быстрее, думаю, оттого, что не запускается парсер для вывода страницы и обработки плейсхолдеров.

Последствий никаких. Но лично мне удобнее с Ajax работать при вызове страницы.
Снаружи я подключаюсь, когда надо серьезно поработать с БД (ипорт-экспорт и все такое)
Иван Брежнев
28 июня 2012, 04:45
0
Создал в корне файл ajax.php, добавил в него строки для подключения MODX API, добавил функции чисто для теста, те через которые раньше делал запросы AJAX'ом по вашей статье про AJAX.

И получается что так запрос выполняется быстрее.
В среднем 100-120 мс, а через сниппет вызванный в ресурсе 150-200

Интересно почему, и какие могут быть печальные последствия использования такого метода?
Василий Наумкин
27 июня 2012, 05:35
0
300 Mhz CPU?

У моего телефона 800 MHz