Solution Technologies
Управление сайтом без ограничений

XS2 Online

Все о разработке проектов
на базе платформы XS2 Framework

Функции XS2 API

xs2UpdateNode :: Изменяет поля объекта

  • Доступна в процессоре

Эта функция изменяет значение полей некоторого объекта. Ей передается изменяемый объект в виде ассоциативного массива. Его ключи называются так же, как поля типа данного объекта. Единственный обязательный параметр (ключ массива) — NodId, в котором сообщается идентификатор редактируемого узла (значение его поля NodId). Параметр mod позволяет явно указать модуль, в котором находится изменяемый объект. Не затрагиваются значения в полях, имен которых нет среди ключей в массиве-параметре, однако автоматически изменяется служебное поле MDate — дата-время модификации объекта. Функция возвращает true, если операция прошла успешно и false в случае ошибки.

Пример 368 :: Изменение узла из формы

Допустим, что в шаблоне страницы http://www.xs2.ru/catalogue/photo/upload/48.htm находится форма:

<FORM name="photo" method="POST" action="{$_THE.REQUEST_URI}">
  <INPUT type="text" name="NodId" value="{$_THE.PARAMS[0]}" />
  <INPUT type="text" name="NName" value="" />
  <INPUT type="file" name="image" />
  <INPUT type="submit" />
</FORM>

Тогда в браузер клиента поступит такой код HTML:

<FORM
  name="photo"
  method="POST"
  action="http://www.xs2.ru/catalogue/photo/upload/48.htm">
    <INPUT type="text" name="NodId" value="48" />
    <INPUT type="text" name="NName" value="" />
    <INPUT type="file" name="image" />
    <INPUT type="submit" />
</FORM>

Это обычная форма, которая отправляется на тот же адрес и ее можно обработать в процессоре:

<?php
  if ($_POST['NodId']) {
    xs2UpdateNode($_POST)
  }
?>

Проверка здесь нужна, чтобы вызов функции происходил только когда форма со страницы была отправлена. Кроме того, в примере предполагается, что объект photo имеет поле image для хранения изображений. Задача данной формы — обновление двух полей в описании фотографии.

Пример 369 :: Изменение с проверкой

Если в предыдущем примере отправить форму, оставив поле NName пустым, то такое поле у объекта очистится, потому что при изменении не затрагиваются только поля, которых нет среди ключей в параметрах функции. Когда не требуется изменять поля, соответствующие незаполненным полям формы, следует удалить из массива параметров соответствующие ключи:

<?php
  if ($_POST['NodId']) {
    foreach($_POST as $name => $value) {
      if (!$value) {
        unset($_POST[$name])
      }
    }
    xs2UpdateNode($_POST)
  }
?>

Параметры

field_name (mixed)
поля, значения которых будут изменены. Значения неуказанных полей не будут изменены.
Заместитель нескольких параметров
NodId (int)
Идентификатор объекта
Обязательный параметр
mod (string)
Имя модуля, на котором выполняется функция
По умолчанию: текущий модуль
prj (string)
Имя проекта, на котором произволятся действия. Возможность существует при условии, что у указанного проекта разрешен экспорт данных и текущий проект указан среди «доверенных проектов»
По умолчанию: текущий проект

Смотри также

Эта функция удаляет из модуля mod объект с идентификатором NodId и типом NType . Функция возращает true, если удаление прошло успешно и false...
Эта функция создает в модуле mod объект типа NType с полями name_field . Объект становится дочерним, по отношению к объекту с идентификатором...
Эта функция перемещает узел с идентификатором NodId из модуля mod , вместе со всеми его потомками, в объект с идентификатором ParId .
Эта функция изменяет значение полей некоторого объекта. Ей передается изменяемый объект в виде ассоциативного массива. Его ключи называются так...
Copyright ©1998-2009 Солютекс. Все права защищены.
Этот сайт сделан в designLab | Работает на технологии XS2
Условия использования | О защите конфиденциальности