您在這裡

views 將sticky(置頂)的文章用不同顏色標示

Webster H.'s 的頭像
Webster H. 在 2011-02-17 (四) 16:39 發表

請問各位
不曉得有沒有人可以教我一下

就是我想要把views中置頂文章的文章標題連結用不同顏色標示

譬如 原本一般的文章標題連結都是藍色
但是有置頂的就變成紅色

不曉得有沒有辦法
請教各位了!

剛剛試著改了 views-view-table.tpl.php


// 前略

<?php foreach ($rows as $count => $row): ?>
">
<?php foreach ($row as $field => $content): ?>
<?php if($row[sticky] == 'On'): ?>url-red<?php endif; ?>">
<?php print $content; ?>

<?php endforeach; ?>

<?php endforeach; ?>

// 後略

url-red 是判斷 $row[sticky] 是否為 On 加上去的 class,當然 CSS 要另外寫...

雖然說這樣是 ok 的,但是 views 拉出來的 內容節點: Sticky 如果設成不顯示的話,
$row[sticky] 就無法判斷了 @@

有人想到更好的方式嗎

HIHI
就在剛剛我找到一個可以把views的table變色的模組了耶
叫做Views Table Highlighter
http://drupal.org/project/views_table_highlighter
謝謝你這麼熱心的幫助我耶!

它可以幫我把置頂文章的views欄位變色
裝了模組後在views中設定
if ($node_sticky == "1") return 'yellow';
這個成功的幫我把置頂的views欄位變色了

(以下是他的設定指示)
Available fields:
$nid == "198"
$node_created == "1297738115"
$node_sticky == "1"
$node_title == "hello test article"
(Above are sample values from the first row of this view.)

Available colors:
'red'
'yellow'
'green'
'cyan'
'blue'
'magenta'

那我想請問
如果我是想要我文章的標題前面 如果我是打
[祝賀]獲得XX獎
如果只要出現[祝賀]就換色
這樣我的php要怎麼寫啊?
我不知道該如何判斷這個>"<~

看起來那個判斷應該完全是php語法才對,
照這樣的寫法
if ( substr($node_title, 0, 4) == '[祝賀]' ) return 'yellow';
這樣應該就可以了。

那個substr的意思是,取$node_title從第0個開始的4個字元,
不過需注意中文佔兩個字元,所以[祝賀]佔的字元數可能要自己留意一下