在我的网站上有“登录或注册发表评论......”
我想将消息更改为: “登录或注册发表评论(评论将被审核)..”
因为很多垃圾邮件发送者只是创建登录来发布垃圾评论。 虽然现在所有评论都已经过审核。发布此消息将清楚地表明垃圾邮件可能无法发送,垃圾邮件发送者也不会创建登录信息。
答案 0 :(得分:2)
假设您使用的是Drupal 6,则创建注释表单的代码位于Drupal模块目录的comments.module文件中。幸运的是,该功能允许主题化。
您可以做的是复制并粘贴功能theme_comment_post_forbidden($ node)并将其放在主题目录的template.php文件中。您还需要重命名该功能,将“主题”替换为您的主题名称。
例如,假设您的主题名称是'utilitiesindia'。然后,您将函数重命名为utilitiesindia_comment_post_forbidden。
因此,在名为utilitiesindia的主题的template.php文件中,使用此函数:
/**
* Theme a "you can't post comments" notice.
*
* @param $node
* The comment node.
* @ingroup themeable
*/
function utiltiesindia_comment_post_forbidden($node) {
global $user;
static $authenticated_post_comments;
if (!$user->uid) {
if (!isset($authenticated_post_comments)) {
// We only output any link if we are certain, that users get permission
// to post comments by logging in. We also locally cache this information.
$authenticated_post_comments = array_key_exists(DRUPAL_AUTHENTICATED_RID, user_roles(TRUE, 'post comments') + user_roles(TRUE, 'post comments without approval'));
}
if ($authenticated_post_comments) {
// We cannot use drupal_get_destination() because these links
// sometimes appear on /node and taxonomy listing pages.
if (variable_get('comment_form_location_'. $node->type, COMMENT_FORM_SEPARATE_PAGE) == COMMENT_FORM_SEPARATE_PAGE) {
$destination = 'destination='. rawurlencode("comment/reply/$node->nid#comment-form");
}
else {
$destination = 'destination='. rawurlencode("node/$node->nid#comment-form");
}
if (variable_get('user_register', 1)) {
// Users can register themselves.
return t('<a href="@login">Login</a> or <a href="@register">register</a> to post comments(comments will be moderated)', array('@login' => url('user/login', array('query' => $destination)), '@register' => url('user/register', array('query' => $destination)))
);
}
else {
// Only admins can add new users, no public registration.
return t('<a href="@login">Login</a> to post comments', array('@login' => url('user/login', array('query' => $destination))));
}
}
}
}
答案 1 :(得分:1)
how to change the comment link text " Login or register to post comment" to be shorter ,eg " comment"
您也可以使用String overrides模块。
答案 2 :(得分:1)
在Drupal 6中:
另一种选择是创建一个小型自定义模块。这使用hook_link_alter()。这是一个用于更改“登录发布新评论”链接标题的小示例模块:(将MYMODULE_NAME的每个实例替换为您为模块选择的名称)
步骤1:创建名为MYMODULE_NAME.info的文件并添加:
; $Id$
name = "MYMODULE_NAME"
description = "Change the appearance of links that appear on nodes"
core = 6.x
第2步:创建名为MYMODULE_NAME.module的文件并添加:
<?php
// $Id$;
/**
* Implementation of hook_link_alter
*/
function MYMODULE_NAME_link_alter(&$links, $node){
if (!empty($links['comment_forbidden'])) {
// Set "Login to post new comment" link text
$links['comment_forbidden']['title'] = 'NEW TEXT';
// Add this to allow HTML in the link text
$links['comment_forbidden']['html'] = TRUE;
}
}
步骤3:将这些文件放在名为MYMODULE_NAME的文件夹中,将文件夹放在sites / all / modules中,然后启用模块
答案 3 :(得分:1)
如果你真的想阻止垃圾邮件发送者创建帐户,你应该使用类似CAPTCHA模块的东西,因为他们通常使用的机器人在任何情况下都会忽略指令。