/** * Получение формы редактирования объекта. */ public static function rpc_get_editor(Context $ctx) { $node = Node::load($ctx->get('node'))->knock(ACL::UPDATE); $schema = $node->getSchema(); if (!array_key_exists($field = $ctx->get('field'), $schema['fields'])) { throw new PageNotFoundException(t('Нет такого поля у этого объекта.')); } $tpl = $schema['fields'][$field]; $tpl['value'] = $field; $tpl['nolabel'] = true; $form = new Form(array('action' => '?q=nodeapi.rpc&action=modify&node=' . $node->id . '&field=' . $field)); $form->addControl(Control::make($tpl)); $form->addControl(new SubmitControl(array('text' => 'OK'))); return new Response($form->getHTML($node)); }