Formit, hook и setPlaceholder

Всем добрый день!

При оформлении заказа потребовалось сделать оформление заказана на нескольких страницах (шагах), в итоге на последней странице я пишу в параметрах Formit вызов hook-а:

$data = $hook->getValues();
if (!isset($modx->miniShop) || !is_object($modx->miniShop)) {
$modx->miniShop = $modx->getService('minishop','miniShop', $modx->getOption('core_path').'components/minishop/model/minishop/', $scriptProperties);
if (!($modx->miniShop instanceof miniShop)) return false;
}
if (!empty($data['delivery'])) {$_SESSION['minishop']['delivery'] = $data['delivery'];}
if (!empty($data['payment'])) {$_SESSION['minishop']['payment'] = $data['payment'];}
$_SESSION['minishop']['address'] = $data;
$data = $modx->miniShop->submitOrder();
//$modx->setLogLevel(modX::LOG_LEVEL_DEBUG);
//$modx->log(xPDO::LOG_LEVEL_DEBUG, 'hook_addQuiqCart was called with the following parameters: '.print_r($data,true));
$modx->setPlaceholder('orderEnd',"My data send");
return true;

письма отправляются, идет редирект на страницу с сообщением о номере заказа и сумме, и тут я не знаю как передать плейсхолдеры о заказе.

форму вызываю:
[[!FormIt?   &submitVar=`fst3`
&hooks=`hook_StepFormSend, redirect`
&store=`0`    &redirectTo=`56` ]]

Я в хуке получаю чанк succsess с нужной мне инфой, но как передать его в последнюю страницу (56) не знаю. Создаю в хуке плейсхолдер orderEnd. Сделал снипет который возвращает значение этого плейсхолдера
return $modx->getPlaceholder('orderEnd');

в странице 56 делаю вызов моего снипета и пишу плейсхолдер в итоге пусто.

Как можно из хука передать данные о заказе оформленные в чанк или просто плейсхолдером на другую старницу?
Алексей Хребтов
26 января 2013, 09:34
modx.pro
1
3 215
0

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

Василий Наумкин
26 января 2013, 14:03
0
Зачем передавать информацию через плейсхолдеры, когда есть $_SESSION?
    Алексей Хребтов
    26 января 2013, 14:07
    0
    Василий, насколько я помню Вы делаете unset($_SESSION['minishop']) в функции SubmitOrder перед тем как вернуть результат. Или я что-то упускаю?
      Василий Наумкин
      26 января 2013, 14:09
      0
      Что мешает засунуть нужные тебе данные в $_SESSION['mydata']?
        Алексей Хребтов
        26 января 2013, 14:31
        0
        Да точно, проблема решилась, в хуке записываю в сессию результат SubmitOrder и вызывая на странице свой снипет получаю эти данные.

        Спасибо.
    Алексей Хребтов
    26 января 2013, 14:07
    0
    перенес выше.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5