Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 允许不带http的评论主页URL://_Drupal_Drupal 6 - Fatal编程技术网

Drupal 允许不带http的评论主页URL://

Drupal 允许不带http的评论主页URL://,drupal,drupal-6,Drupal,Drupal 6,我希望Drupal评论像其他博客的评论一样工作。正在编写主页URL的用户可以写“www.example.com”或http://www.example.com,“他们都工作。现在,如果URL不包含“http://”,Drupal会抛出一个错误。您可以覆盖/modules/comment/comment.module中的comment\u validate钩子,并修改验证代码,以便在URL中插入http://位(如果还没有)。更改后的代码类似于: if ($edit['homepage']) {

我希望Drupal评论像其他博客的评论一样工作。正在编写主页URL的用户可以写“www.example.com”或http://www.example.com,“他们都工作。现在,如果URL不包含“http://”,Drupal会抛出一个错误。

您可以覆盖
/modules/comment/comment.module
中的
comment\u validate
钩子,并修改验证代码,以便在URL中插入
http://
位(如果还没有)。更改后的代码类似于:

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\u form\u validate
hook:

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']);
}

strpos行应该是

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

这是可行的。但当我点击访客的主页时。它不能工作。url是:我修改了答案,在注释上添加了一个钩子,\u form\u validate,可以解决这个问题……没关系。非常感谢。但我不知道为什么它能起作用。您只需分配注释_validate($form_state['values']);添加到$form_state['values']。希望您能对此进行解释。
comment_validate
函数将更改返回到
$edit['homepage']
,但它未分配给
comment_form_validate
中的任何内容,因此当函数返回时,更改将被删除
$edit['homepage']
来自
$form\u state['values']
$form\u state
通过引用传递到
comment\u form\u validate
,因此修改将在函数完成后保留。对不起。出现了一个新问题。当我输入(http://www.example.com)时,它无法提交评论。