Разрешить комментировать URL домашней страницы без http: // - PullRequest
1 голос
/ 13 марта 2011

Я хочу, чтобы комментарии Drupal работали так же, как и комментарии любого другого блога.Кто пишет URL своей домашней страницы, может написать «www.example.com» или «http://www.example.com,"», и они оба работают. Прямо сейчас Drupal выдает ошибку, если URL не содержит «http: //.»

.

Ответы [ 2 ]

1 голос
/ 20 июля 2011

Строка strpos должна быть

strpos($edit['homepage'], "http://") === FALSE

https://drupal.stackexchange.com/questions/1037/allow-comment-homepage-urls-without-http

1 голос
/ 13 марта 2011

Вы можете переопределить хук comment_validate в /modules/comment/comment.module и изменить код проверки, чтобы вставить бит http:// в URL, если его там еще нет. Измененный код будет выглядеть примерно так:

if ($edit['homepage']) {
    if (!strpos($edit['homepage'], "http://")) {
        $edit['homepage'] = "http://" . $edit['homepage'];
    }
    if (!valid_url($edit['homepage'], TRUE)) {
        form_set_error('homepage', t('The URL of your homepage is not valid. Remember that it must be fully qualified, i.e. of the form <code>http://example.com/directory</code>.'));
    }
}

Вам также необходимо переопределить хук comment_form_validate:

function comment_form_validate($form, &$form_state) {
  global $user;
  if ($user->uid === 0) {
    foreach (array('name', 'homepage', 'mail') as $field) {
      // Set cookie for 365 days.
      if (isset($form_state['values'][$field])) {
        setcookie('comment_info_'. $field, $form_state['values'][$field], time() + 31536000, '/');
      }
    }
  }
  $form_state['values'] = comment_validate($form_state['values']);
}
...