Оглавление

xs2UpdateNode

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

Параметры

int NodId

идентификатор изменяемого объекта.

Обязательный параметр.

string mod

Название модуля, в котором находится объект с идентификатором NodId. См. также http://lib.solutecs.com/api/concept/show/438.htm

Значение по умолчанию: текущий модуль.

mixed field_name...

поля, значения которых будут изменены. Значения неуказанных полей не будут изменены.

Примеры

Пример 12

Допустим, что в шаблоне страницы http://www.quickie.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.quickie.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 для хранения изображений. Задача данной формы – обновление двух полей в описании фотографии.

Пример 13

Если в предыдущем примере отправить форму, оставив поле NName пустым, то такое поле у объекта очистится, потому что при изменении не затрагиваются только поля, которых нет среди ключей в параметрах функции. Когда не требуется изменять поля, соответствующие незаполненным полям формы, следует удалить из массива параметров соответствующие ключи:
<?php
  if ($_POST['NodId']) {
    foreach($_POST as $name => $value) {
      if (!$value) {
        unset($_POST[$name])
      }
    }
    xs2UpdateNode($_POST)
  }
?>