Drupal 允许不带http的评论主页URL://
我希望Drupal评论像其他博客的评论一样工作。正在编写主页URL的用户可以写“www.example.com”或http://www.example.com,“他们都工作。现在,如果URL不包含“http://”,Drupal会抛出一个错误。您可以覆盖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']) {
/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)时,它无法提交评论。