コメント/フォーラムのリンクを次のようなものに変更したいと思います。
トピック:
#1
#2
#3
私はこれをどのように行うべきかについて何か考えがありますか?
高度なフォーラム フォーラムの他の便利な機能の中で、箱から出して探しているもの(投稿の左上隅にある#numberパーマリンク)を提供します。
単にそのモジュールを使用することも、テンプレートファイルを見てどのように行われるかを確認することもできます。関連するコードは includes/advanced_forum_preprocess_comment.inc にあるようで、次のようになります。
/* Linked post number */
if (!isset($post_number)) {
static $post_number = 1;
}
$posts_per_page = variable_get('comment_default_per_page_' . $node->type, 50);
$page_number = !empty($_GET['page']) ? $_GET['page'] : 0;
if (!$page_number) {
$page_number = 0;
}
$post_number++;
$linktext = '#' . (($page_number * $posts_per_page) + $post_number);
// Permalink
// You can erase next 3 lines if you wish to use built-in Permalink.
// Template adjusted: $post_link -> $permalink
$uri = entity_uri('comment', $comment);
$uri['options'] += array('attributes' => array('class' => 'permalink', 'rel' => 'bookmark'));
$variables['permalink'] = l($linktext, $uri['path'], $uri['options']);
まず、コードがtemplate_preprocess_comment(&$vars)
にある場合、$node->type
は$vars['node']->type
である必要があります。また、Commentモジュールは、トップのコメントに1で始まるIDを追加するため、ページごとにコメントカウンターを用意する必要はありません。現在、このコードは、いくつかのページにコメントがあっても正しく動作します。
function template_preprocess_comment(&$vars) {
$posts_per_page = variable_get('comment_default_per_page_' . $vars['node']->type, 50);
$page_number = !empty($_GET['page']) ? $_GET['page'] : 0;
if (!$page_number) {
$page_number = 0;
}
$linktext = '#' . (($page_number * $posts_per_page) + $vars['id']);
$vars['comment']->uri['options'] += array('attributes' => array('class' => 'permalink', 'rel' => 'bookmark'));
$vars['permalink'] = l($linktext, $vars['comment']->uri['path'], $vars['comment']->uri['options']);
}
正常に動作しました。 template.phpファイル(drupal/sites/address/themes/YOUR THEME/template.php)に次を追加します。
<?php
function YOURTHEME!_preprocess_comment(&$variables){
/* Easy links to the comment and parent node */
$comment = $variables['comment'];
$node = node_load($comment->nid);
$variables['first_post'] = $node;
// Set the post ID for theming / targetting
$variables['post_id'] = "post-$comment->cid";
/* Linked post number */
if (!isset($post_number)) {
static $post_number = 1;
}
$posts_per_page = variable_get('comment_default_per_page_' . $node->type, 50);
$page_number = !empty($_GET['page']) ? $_GET['page'] : 0;
if (!$page_number) {
$page_number = 0;
}
$post_number++;
$linktext = '#' . (($page_number * $posts_per_page) + $post_number);
// Permalink
// You can erase next 3 lines if you wish to use built-in Permalink.
// Template adjusted: $post_link -> $permalink
$uri = entity_uri('comment', $comment);
$uri['options'] += array('attributes' => array('class' => 'permalink', 'rel' => 'bookmark'));
$variables['permalink'] = l($linktext, $uri['path'], $uri['options']);
}
?>