您在這裡

Views的Filter如何過濾掉第一篇?

soothepain's 的頭像
soothepain 在 2008-08-20 (三) 13:59 發表

有人知道Views的Filter如何過濾掉第一篇
如下圖,這種效果是不是需要三個views來完成

例如
左邊圖片選出a類最後發表的預覽圖
右邊上頭的粗體字及文字說明,選出a類最後發表的teaser
右邊下面的標題,選出除了第一篇之後的文章抬頭
還是有更聰明的選擇....(別叫我用遠傳XD)

用 teaser view 搭配文章版型的修改
用同一個 views 就可以做出來

views 的部分不需要更改過濾設定
把顯示方式改為 teaser view 即可

然後製作最新消息的 content type theme
在 theme 裡面判斷 $id = 1
的時候顯示第一篇文章 秀出標題 文章摘要 與 詳全文的連結
然後 $id 不為 1 的 只顯示小圖示 + 標題
版型修改的部分可以參考之前有一篇 views中內容的多色彩... 的文章

用三個 views 去做 之後如果需要改過濾條件 會變成找自己麻煩

我下午找到另一個方法
在 template.php 裡面寫 phptemplate_views_view_list_frontpage()
函式命名規則是 phptemplate_views_view_$type_$viewsname
$type 可以是 list, table, teasers, nodes
$viewsname 就是 views 的 name/名稱

然後再搭配 theme_views_view_{list,table,teasers,nodes} 可以產生原本預設的結果
不過如果圖片是放在 CCK 裡的話, 要方便的 Customize 似乎還蠻麻煩的

以我今天在試的東西為例, 我是配合 emfield module, 第一則想要產生比較大的預覽圖
可以用 views_theme_field('views_handle_field', $field['queryname'], $fields, $field, $node, $view); 把選出來的欄位轉成網頁輸出用的形式, 但是 img tag 裡的寬跟高已經寫死了, 沒辦法調整, 如果改 CCK field 設定又會把其他地方的顯示也改掉, 後來還是直接把 embed field value 拿出來自己生對應 img, 而不透過 emfield 的 thumbnail.