Drupalに標準で装備されている「最近のコメント」を表示するブロックでは、コメントにタイトルが付いていない場合にリンクが作成されない(正確にはアンカータグで囲まれる文字が空なのでクリックができない)不具合があります。
この問題を解消するために、こちらに修正方法を掲示してありますが、そこに書かれている方法の場合、最初からコメントにタイトルを付けない設定にしてあると、当然ながら "no subject" が延々と続くことになります。
これに対して juangotoh さんが、フォーラムに良い対応策を投稿してくださいました。
以下は、そのアイディアを基に若干の変更を加えたものです。
なお、変更には mbstring の関数を含んでいますので、PHP で mbstring が有効である必要があります。(国内のサーバでは、ほとんどの場合は有効になっています。)
修正するモジュール: modules/comment.module
Ver. 4.6.5 の場合は169行目(他のバージョンでは同様の行)
while ($comment = db_fetch_object($result)) {
$items[] = l($comment->subject, 'node/'. $comment->nid, NULL, NULL, 'comment-'. $comment->cid) .'<br />'. t('%time ago', array('%time' => format_interval(time() - $comment->timestamp)));
上記の行の間に以下のような行を追加します。
while ($comment = db_fetch_object($result)) {
// ここから
if ($comment->subject == "") {
$comment->subject = mb_substr(
strip_tags(trim(array_shift(preg_split(
'/\n|<br.*>|\\\\|%%%/i', $comment->comment, 1, PREG_SPLIT_NO_EMPTY))))
, 0, 10, 'UTF-8') . "...";
}
// ここまでを追加
$items[] = l($comment->subject, 'node/'. $comment->nid, NULL, NULL, 'comment-'.