您在這裡

怎麼樣減少views的teaser顯示內容?

tky's 的頭像
tky 在 2006-11-21 (二) 12:41 發表

各位好:

TKY在和「個人資訊」類型的node設定奮鬥時,又碰到一個問題。
個人資訊通常都會包含頭相,TKY用image這個模組在「內容類型」的設定裡,設定「個人資訊」的node可以附加圖片。

用views新增一個teaser顯示類型的「個人資訊」頁,列出所有使用者的頭相與資訊。也蠻好看的。
問題是,teaser不是摘要嗎?怎麼總是把「個人資訊」的所有資料都列出來呢?資料一多,頁面就拉的很長,沒辦法達到一覽的效果。

改用views的list或table顯示類型,選擇要顯示的欄位;結果比較符合理想狀況,但頭相因此就不見了。
看看image模組的內容,果然只有teaser和body才會顯示圖片。

試試看用 content template更改「個人資訊」node的theme;結果符合理想狀況,但頭相還是不見了。
theme code裡頭也沒有關於image的code,搞不懂為什麼改了theme code(譬如刪去一兩個teaser的欄位div),頭相就會不見。

搞半天,好像只得朝views的teaser顯示類型下手。
不曉得能不能「縮減」views的teaser顯示類型的顯示項目呢?這樣改動應該是最簡單的方法吧?

TKY

後來發現一件事情,蠻怪的。
就是TKY發現好像除了page等預設的node type之外,TKY用CCK創造的新頁面,不管內文的文章字數有多少,在teaser顯示模式下面,都不會有引文的顯示狀態,全都是全文,也不會有「閱讀全文」的link出現在文末。

所以TKY的「個人資訊」teaser跟全文一樣長!

不曉得這是怎麼回事?

如果版上有老手發生過這樣的問題,麻煩跟TKY講一下要怎麼解決。

謝謝

TKY

tky

也曾經被這問題困擾過許久,在 drupal.org 爬了一堆文後最後個人選擇使用以下方式:

1. 安裝 Content Template (contemplate) Module for Drupal
http://drupal.org/project/contemplate
這模組可以讓你新增的CCK文體都擁有各自的 template 設定。

2. 到 「管理」-> 「內容」-> 「Templates」編輯妳需要修改的的內容類型(文體)。
在 [Teaser Template]裡頭把 原本顯示完整內容的變數($item['view'])如此這般修改

修改:

<?php print $item['view'] ?>

成為:

<?php print node_teaser($item['view']); ?>

這裡是使用 Drupal 內建的 teaser函數 node_teaser()
可以跟其他預設內容類型一樣很好的斷詞,
個人覺得這樣比使用 substr() 之類的 php函數強迫斷詞要好的多。

謝謝yelban。TKY試過,的確有用。不過很怪的是:文章變短了,但「閱讀全文」的link還是不見蹤影。

不過,一用Content Template改過code,唉,不管是teaser還是全文的顯示,attach image的頭像就消失了,煩啊。
Content Template的功能似乎會衝到attach image的顯示狀況。

TKY有試著在views的設定裡頭,在table或list加入attach image的顯示欄位,不過不知道為什麼,就是沒有顯示出來。
一個「個人資訊」的node卻無法顯示頭相,真是惡夢一場。

雖然,Drupal在內容管理上功能很強大,但是要達到完全的客製化,還是要花蠻大的功夫。

TKY

tky

TKY CCK的这个问题你解决了?按照yeban的方法我用了却不成功,不知道怎么回事。

CCK我从很早就发现这个问题了,为什么官方更新了这么多次都不搞好这个问题呢?

协医网中国最好的严肃、实名制医生网站

其實除了超過字數的欄位變短了之外,沒有太大的差別:「閱讀全文」的link不見蹤影、欄位還是一樣多(以為會變少說)。

如果node裡頭有很多textarea欄位的話,那上面yeban的方法的確可以把每個textarea欄位變成摘要,但並非是把整個node變成摘要。TKY想說,如果node裡頭有很多其他類型的欄位的話,node還是一樣會因為欄位與欄位的編排空隙而變得很長。

TKY後來就盡量不用teaser的方式顯示用CCK創建的新node。

TKY

tky