使用Flag來標記精華評論(轉)

flag模塊是一個靈活的標記模塊,使用這個模塊可以標記任意的節點、評論、用戶等內容,可以通過這個模塊將節點標記爲精華、垃圾或者你想做的任何標記.flag模塊還可以和views2進行整合進行操作,同時flag還支持action.在官方網站上有非常詳細的文檔.

下面我就講講利用Flag模塊,給評論加個精華。


安裝Flag模塊

和所有模塊一樣,下載,在模塊設置中進行安裝.

配置Flag模塊

全局的flag和私人的flag,在flag模塊中,標記分爲全局和私人的2類,如果是私人flag,那麼每個有僅進行標記的人都可以去更改它,而不會影響他人,如對文章進行收藏,全局的flag改變之後對所有用戶都會影響,如管理員對評論進行加精,那麼所有人都會看到這個精華標誌.

用admin/build/flags進行對flag進行設置:


增加好之後,在前臺就可以對評論節點進行精華標誌。


把區塊放到模板的指定位置,就可以看到精華評論。

Flag模塊在模板中運用。

前面這些工作完成之後,當然還沒完,怎麼加入精華的評論與一般評論沒有區別,那還要針對模板進行一些設置。參考這裏的內容

打開模板文件中的template.php文件,加入phptemplate_preprocess_comment函數

static $flags;
if (!module_exists('flag')) {
return;
}
if (!isset($flags)) {
$flags = flag_get_flags('comment');
}
// Note: is_flagged() and get_count() use internal cache,
// so using them won't result in issuing excessive SQL queries.
$classes = array();
$cid = $vars['comment']->cid;
foreach ($flags as $flag) {
$css_name = str_replace('_', '-', $flag->name);
if ( $flag->is_flagged($cid)) {
$classes[] = 'comment-flagged-' . $css_name;
}
}
$vars['flag_classes'] = implode(' ', $classes);

這段是取得是否標誌精華,如果是的話,加了一個$vars['flag_classes']的類。這個東東就可以在comment.tpl.php文件中使用。

<!-- start comment.tpl.php -->
<div class="comment <?php print $comment_classes;?> clear-block">
<?php print $picture ?>
<?php if ($comment->new): ?>
<a id="new"></a>
<span class="new"><?php print $new ?></span>
<?php endif; ?>
<h3 class="title <?php echo $flag_classes; ?>"><?php print $title ?></h3>
<div class="submitted">
<?php print $submitted ?>
</div>
<div class="content">
<?php print $content ?>
<?php if ($signature): ?>
<div class="signature">
<?php print $signature ?>
</div>
<?php endif; ?>
</div>
<?php if ($links): ?>
<div class="links">
<?php print $links ?>
</div>
<?php endif; ?>
</div>
<!-- /end comment.tpl.php -->

紅色部份是我加入的代碼,如果是精華的話,那麼會在標題中有一個CSS類叫comment-flagged-picks,其中picks是我flag name.

然後在你的模板CSS文件中加入

.comment-flagged-picks{
background: url('images/raquo.png') no-repeat left 0.833em; //圖片當然自己去找
padding-left: 13px;
}


特別注意Flag模塊也是支持模板的,但其中的模板文件是用flag--flagname.tpl.php,是2個-,一個不留神,搞了好長。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章