UMIhelp

Разработка сайта на UMI.CMS => Макросы UMI.CMS => Тема начата: john от 25 Мая 2014, 00:13:32

Название: Вызвать поле из админки шаблона данных
Отправлено: john от 25 Мая 2014, 00:13:32
В файле /clasess/modules/emarket/_events.php
Есть строчка
$api->send('Телефон','Ваш заказ №36.', 'utf-8');

Что мне написать и как правильно, чтобы Телефон брал значения из поля которое заполнятся на сайте. В админке - шаблон данных имеется идентификатор tp_phone.
И как вписывать № заказа сюда?
Название: Re:Вызвать поле из админки шаблона данных
Отправлено: admin от 25 Мая 2014, 13:31:49
В файле /clasess/modules/emarket/_events.php
Есть строчка
$api->send('Телефон','Ваш заказ №36.', 'utf-8');

судя по строчке это не стандартный функционал, а что-то написанное вами или другими разработчиками в рамках кастомизации (хотя для кастомизации не используется файл /clasess/modules/emarket/_events.php, для этого есть другие файлы)

Поэтому приведите всю вашу функцию полностью.

Что мне написать и как правильно, чтобы Телефон брал значения из поля которое заполнятся на сайте. В админке - шаблон данных имеется идентификатор tp_phone.
И как вписывать № заказа сюда?

В вашем сообщении не сказано в каком типе данных у вас поле tp_phone. Предположим, что это поле в типе данных "пользователь", тогда в макросе, вам надо получить id текущего пользователя, взять объект пользователя и получить значение поля tp_phone из данного объекта/ Примеры похожих манипуляций силами API см в документации (http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/primery_ispolzovaniya_vozmozhnostej_api/obekty/)
Название: Re:Вызвать поле из админки шаблона данных
Отправлено: john от 25 Мая 2014, 18:05:04
Как выглядит полностью. Срабатывает после оформления заказа.
 abstract class __emarket_custom {
 public function onStatusChangedCustom (iUmiEventPoint $e) {
if($event->getMode() == "after" && $event->getParam("old-status-id") != $event->getParam("new-status-id")) {
    $order = $event->getRef("order");
    $api = new Api(array('id' => '123', 'key' => '1A2B3C4F', 'from'=> 'INFO'));
    $amount = $api->getBalance();
         if ($amount > 0) {
            $newStatusId = $e->getParam('new-status-id');
             $status = order::getCodeByStatus($newStatusId);
            if ( $status == 'waiting' ) {
                $api->send('89131234567','Ваш заказ №36548.', 'utf-8');
            }
        }
    }
};
При оформление заказ, клиент вбивает свои данные и телефон в том числе, необходимо чтобы телефон попал в эту строчку $api->send('89131234567','Ваш заказ №36548.', 'utf-8');

Примерно написал, скорей не правильно.
header("Content-type: text/html; charset=utf-8");
include "standalone.php"; -  а путь он найдет?

$permissions = permissionsCollection::getInstance();
$currentUserId = $permissions->getUserId();
$userObject->getValue("tp_phone");
$api->send($userObject,'Ваш заказ №36548.', 'utf-8');
Это телефон, а если еще номер заказа добавить?