Simplenews. Другие типы материала

Аватар пользователя godson godson 10 декабря 2014 в 10:07

Вот уже на втором сайте пытаюсь настроить Simplenews + MimeMail + MailSystem для рассылки по email новых публикаций. Проблема в том, что рассылка работает через собственный, дополнительный рассылочный тип материала, но если попытаться сделать рассылку другого типа материала, то при добавлении материала возникает куча ошибок, хотя через включение/выключение этой функции разослать этот материал все-таки можно.

Думал, что сам что-то накосячил, но, вот теперь собираю второй сайт, и та же самая проблема. Вот и возникли у меня сомнения: а есть ли у этого модуля вообще официальная возможность работать с "левыми" типами материалов, или же я все-таки что-то не так делаю...?

Комментарии

Аватар пользователя zvse zvse 10 декабря 2014 в 16:31

Можно так:

/**
 * Implements hook_form_FORM_ID_alter().
 */

function module_form_NODE_TYPE_node_form_alter(&$form, &$form_state) {
  $form['#submit'][] = 'module_form_NODE_TYPE_node_form_submit';
}

/**
 * Callback submit function for form form_NODE_TYPE_node.
 */

function module_form_NODE_TYPE_node_form_submit (&$form, &$form_state) {
  $node = new stdClass();

  $values = $form_state['values'];
  $node->title = $values['title'];
  $node->type = 'mimemail_type'; // не помню точно тип, давно не работал
  $node->name = $user->name;
  $node->uid = $user->uid;
  $node->changed = REQUEST_TIME;
  $node->created = REQUEST_TIME;

  node_object_prepare($node);

  $node->body = $form['#node']['body'];

  node_save($node);
}

Мы просто в сабмите создаем клон нашей ноды, но уже с типом майммэйла Smile Тут же можем делать что угодно с телом и прочим. По-моему, самый легкий выход
// Код для 7 Друпала