[Решен] pm_lite Отправка сообщения програмно.

Здравствуйте!

Нужно отправить личное сообщение, pm_lite, пользователю.

Вопрос:
1) Как это сделать программно?
2) где можно почитать инфу о pm_lite API?

p.s
Почему сайт выводит сообщение :
Текст Пост дуже короткий. Потрібно як мінімум 25 слів.

В общем сделал так

                function send_pm_towinner($u_uid, $m_par_nid)
                {
                    global $user;
                    //krumo($user);
                    //return;
                    $node = new StdClass();
                    $node->title = 'Вы стали победителем конкурса';
                    $node->type  = 'pm';
                    $node->uid  = $user->uid;
                    $node->body  = "Текст сообщение для победителей";
                    node_save($node);
                    $nid = $node->nid;
 
                    db_query("INSERT INTO pm_lite
                     (nid, recipient, status, parent
                     ) VALUES (
                      %d,
                     '%d',
                      0,
                     %d)", $nid, $u_uid, $m_par_nid);
                }

Тоесть прямым SQL запросом добавление.

Коментарі

если смотреть код, то отправляется сообщение вот так

/**
 * Implementation of hook_insert().
 *
 * Creates a new row in the pm_lite table for every recipient.
 */
function pm_lite_insert($node) {
  // Put the recipients into an array.
  $recipients = explode(',', $node->recipients);
  $used_uids = array();
 
  foreach ($recipients as $recipient) {
    // Fetch the uid of the recipient.
    $uid = db_result(db_query("SELECT uid FROM {users} WHERE name = '%s'", trim($recipient)));
 
    // If it's still valid, add an entry for it.
    if ($uid && !in_array($uid, $used_uids)) {
      db_query("INSERT INTO {pm_lite} (nid, recipient, status, parent) VALUES (%d, '%s', 0, %d)", $node->nid, $uid, $node->parent);
      $used_uids[] = $uid;
    }
  }
}

Получается сама нода сохранилась как обычно, а эта функция сохраняет дополнительные параметры

насчет отправки то напрашивается метод drupal_execute()
В него передаете ИД формы и массив значений, функция вызывает форму, заполняет и отправляет

 
                function send_pm_towinner(&$m_arr_winners, $m_text)
                {
                    $node = new StdClass();
                    $node->title = 'Вы стали победителем конкурса';
                    $node->type  = 'pm';
                    $node->uid  = $user->uid;
                    $node->body  = $m_text;
                    node_save($node);
                    $node->recipients =$m_arr_winners;
                   // krumo($m_arr_winners);
                    pm_lite_insert($node);
                }

Пытаюсь делать так. Пока функцию не испытывал но сейчас буду.

откуда этот код?
вот ссылочка на http://api.drupal.ru/api/function/drupal_execute/6 там даже пример есть как заполнить данные сохранения ноды.
Эта функция имитирует то что человек зашел на страницу формы, заполнил поля и отправил форму, поэтому должно работать правильно

Нода сохраняеться. Но сообщение не отправляеться
И UID ноды в таблицу не заносться