Добавление url () нарушает реализацию hook_mail - PullRequest
3 голосов
/ 04 мая 2011

Я пишу модуль в Drupal-7, который динамически отправляет одноразовую ссылку для входа в систему гостям.Все срабатывает нормально, пока я не добавлю ссылку на массив $message, когда он захлебнется.Если я сделаю dpm($message), ссылка появится в массиве $message['body'], как я и ожидал.Если я закомментирую строку с помощью функции url(), все будет работать как надо.Почему php / Drupal задыхается от этой маленькой глупой ссылки?

/*
 * Implement hook_mail().
 */

function rsvp_mail($key, &$message, $params) {
    switch($key) {
      case "send invite" :
        $timestamp = REQUEST_TIME;
        $account = $params['account'];
        $message['subject'] = "And invitation for $account->name";
        $message['body'][] = 'Some body text.';
        $message['body'][] = 'Some more text!';
        //here's the line that's breaking my brain:
        $message['body'][] = url( 'http://wedding.juicywatermelon.com/rsvp/' . $account->uid . "/" . $timestamp . "/" . md5($account->pass . $timestamp) . "/" . 'user/' . $account->uid . '/edit/Wedding');             
        break;
    }
  }

ps - у меня был код для генерации ссылки в отдельном вызове функции и для краткости переместил ее в реализацию ловушки.Это, однако, не повлияло на поведение.

и код, который генерирует электронное письмо:

function rsvp_mail_send($account) {
  $module = 'rsvp';
  $from = "email@gmail.com";
  $key = "send invite";
  $params['account'] = $account;
  $to = $account->mail;
  $language = language_default();
  $send = TRUE;
  $result = drupal_mail($module, $key, $to, $language, $params, $from, $send);
}

1 Ответ

2 голосов
/ 04 мая 2011

Вам необходимо добавить дополнительный аргумент в функцию url (), которая называется options, это массив, и в этом массиве использовать ключ 'absolute' и установить его в TRUE, чтобы указать, что URI, который вы передаете в качестве первого Аргумент является абсолютным URL.

См. Страницу документации для получения дополнительной информации: http://api.drupal.org/api/drupal/includes--common.inc/function/url/7

...