Я пишу модуль в 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 – У меня был код для генерации ссылки в отдельном вызове функции и для краткости переводил ее в реализацию hook. Это, однако, не повлияло на поведение.
и код, который генерирует сообщение электронной почты:
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); }
Вам нужно добавить дополнительный аргумент функции url (), которая называется параметрами, это массив, и в этом массиве используйте ключ «absolute» и установите для него значение TRUE, чтобы указать, что URI, который вы передаете в качестве первого аргумента, является абсолютный URL.
См. Страницу документации для получения дополнительной информации: http://api.drupal.org/api/drupal/includes–common.inc/function/url/7