好吧,TKY認輸了。跟viewfield奮戰了一下午,就是無法達到心目中的效果,讓來問一下大家先。
先簡述一下想法:
在TKY的網頁中,有「師資介紹」T和「課程介紹」C兩種類型的頁面。其中「課程介紹」的「授課教師」Ct是以node reference的方式連結到特定的「師資介紹」頁面。
現在想要在「師資介紹」的頁面中,以一個欄位來顯示出某特定教師所開設的課程。
..................................................
最直覺的方式,就是用viewfield來製作這樣的欄位。
問題是,不是很清楚要怎麼設定viewfield,才能依照不同師資資訊(例如nid或者姓名)在該頁面中篩出特定的課程資訊。
目前的想法是:先建立一個views表格,以「授課教師」Ct當做argument來篩資料。然後在viewfield中設定argument。(雖然不清楚是在欄位設定中設定,還是每個師資介紹頁中都要設定一次)。
但是,喔,嗖蕊,「授課教師」Ct的格式是node reference,用這個格式是篩不出來滴。永遠只會出現沒資料的畫面。
既然views不吃CCK的node reference,TKY就想說那至少可以試試看「師資介紹」的node-id來篩吧.......把忒,不行,沒這回事。
也就是說,似乎好像一定得用php code的方式,才能篩出TKY想要的表格。
問題是雖然viewfield可以插入php code,但TKY卻不曉得要怎樣寫才能辦到!
這個,請有用過viewfield的朋友們指教一下,謝謝。
TKY
Re: 與viewfield奮戰
這應該是很多時候會需要的需求
但是............... 我還沒試過 :P
Re: 與viewfield奮戰
啊,我了。
但至少有沒有人用過viewfield來做過任何東西啊?
能不能指導一下該怎麼設定?
在CCK新增一個viewfield之後,就不知道要怎麼樣繼續下去了。
tky
Re: 與viewfield奮戰
不是看得太明白
但也插一句嘴
可不可以加一個vocab 給課程資訊, 要寫出授課教師的名字
之後用vocab filter 出來?
我自己是用這個方法分開不同用戶的可存取的 node 的
Joetsui's blog
Re: 與viewfield奮戰
這樣做也不失為一個辦法,只要把這個vocabuary指派給課程和師資兩種頁面就好。
不過這樣的話,以後新增師資,就必須新增兩個地方:一次是師資類型內容,一次是分類term(當然可以用tag來弄)。
另一個麻煩之處就是:如果老師很多,term就會爆多。
用node reference的好處就是:建立好師資內容,即可在課程中選擇refer到新增的師資node去。而且,還可以在一個頁面中連結兩種不同類型的內容。
(唯一的)缺點就是,在Views中可以可以選用這種格式來做過濾器以及argument;但選擇後者時,會出現不明的錯誤,導致無法透過網址參數來篩出資料。
TKY想說,應該可以用php code的方式來避開這個問題,但....功力太差,對Drupal的coding一竅不通。(普通php還可以自己寫說....)
還在苦惱中
tky
Re: 與viewfield奮戰
小弟clone 了TKY 的情況
發覺問題出自views 的設定
先解釋一下我設定的情況
免得我理解錯誤
TKY 應該是有兩種node, 課程和師資
師資被ref. 到課程
在課程node 加了一個node ref. field
在node ref field 設定成用一個獨立的views 來 filter 可被ref 的師資node
如果我理解如上
記得將獨立的那個view 要可以看得到title (Views 的Fields 不可留空)
之後node ref. config 點那可access 的contenttype 就可以了
就算那獨立的views 沒有page, block 設定都可以
p.s.
node ref + views 真的是非常好用
帶有很多可能性
Joetsui's blog
Re: 與viewfield奮戰
謝謝joetsuihk的詳細說明。
不過joetsuihk對TKY問題的理解有一點點不同:TKY的確是在課程node中做了一個node ref.的欄位,refer師資node;現在TKY想要做的則是,在師資node中,建立一個views field來列出,這個老師開過的課程。
也就是說要以師資node id或者師資姓名作為argument、濾出課程資料的views field,直接在師資介紹的頁面中,看到他開過什麼課程。
不過joetsuihk說道,「獨立的那個view 要可以看得到title (Views 的Fields 不可留空)」,TKY的確沒有注意到。因為通常用views bonus,只要設定argument就好了。看views field也是用argument,以為就不用設欄位了。
回去試看看
tky
Re: 與viewfield奮戰
剛試了一下,還是不行。
直接clone了一個有設欄位的views table,然後設定那個「開課師資」的node ref.的欄位作為argument。結果,猜想是因為node ref欄位格式的關係,無法顯示任何資料。
但是如果換成text或者數字格式的欄位,例如開學年,就完全沒問題。在網址上打年份,就能篩出該年開設課程的表格。
如果連正常的views表格都篩不出來,那更進階的views field應用恐怕就更難了吧!
tky
Re: 與viewfield奮戰
views 的教學有一篇好有可能有幫助
http://drupal.org/node/87195
細心看, 可以理解argument 的工作原理
要改views 的url?
但今日未有時間試一下
感覺滿難用的
views 的filter 好像有bug, 各位有沒有發覺?
Joetsui's blog
Re: 與viewfield奮戰
view最近有很多bug噴出來
去看一下bug report找一下有沒有patch
最新的patch有到3/18號更新一下或許沒問題
我換了4.7 dev版的views就爆了><~
真慘 大家還是stable ver.乖乖的用比較好
別像我沒事找事作
Re: 與viewfield奮戰
搞定?
加一個views, 叫course_list
提供 page view, url 是 course_list, 用 table 顯示
arg. type: node ref., default display all value
title: %1
filter: nodetype course
之後access www.example.com/course_list
就有全course
www.example.com/course_list/師資_id
就有那師資的course 了
在師資node 加個 view reference(view field)
default value 內
select list 選course_list
arguments 內填%nid
完成! 師資node 出現師資所ref 的 課程!!!
(記得在每一個師資加argument %nid)
Joetsui's blog
Re: 與viewfield奮戰
看起來真是令人興奮
Re: 與viewfield奮戰
用發抖的手指,按照joetsuihk所說的步驟一步一步完成設定,可以顯示出用nid過濾的views table了!之前都沒想過要用nid,一直想用title來濾;真是千金難買早知道。
底下是TKY網站上的範例。
http://www.phil.nthu.edu.tw/teachercourse
http://www.phil.nthu.edu.tw/teachercourse/619
(TKY的views名稱是teacher_course,網址設成teachercourse)
不過用views field開始進行連結的時候就沒有那麼順利了。TKY按照joetsuihk的說法去設定一個「開設課程」欄位,預設值中「select list 選teacher_course,arguments 內填%nid」。
接著去特定師資中設定選單為teacher_course,arguments 內填%nid。
CCK的內容類型顯示選項,顯示entire views。
結果,「開設課程」欄位只出現「目前沒有資料」的資訊,也就是說撈不出資料來。例如:
http://www.phil.nthu.edu.tw/teacher/619
TKY試過一些改變,比如說,在特定師資頁面中,直接在arguments 內填nid的值(如619)。不過,仍然沒有顯示views table出來。
到底還差什麼地方呢?
tky
Re: 與viewfield奮戰
> 用發抖的手指
對不起插嘴一下... tky你還有情境敘述~真是身歷其境啊~
Re: 與viewfield奮戰
恭喜問題解決了一半
我也試過用nid 的值直接填入
也無出現問題
我想是view_field 的問題了
views 的工作己經完成了
check 一下view_field 的 version: v1.1 2006/11/10 19:17:49 的版本
Joetsui's blog
Re: 與viewfield奮戰
版本問題嘛,TKY是使用viewfield 4.7.x-1.x-dev。
難不成是因為dev版,所以用不來?
joetsuihk是用哪個版本呢? 5.0的嗎?
若是的話,就玩完了。
tky
Re:
很遺憾
我用的是drupal 5.1 英文版 viewfield offical release>.<
......................
有時間比對一下兩版本的差異吧......
drupal.org 上viewfield 未有4.7 的error/bug report
submit 一個吧
作者剛submit 了5.0 的patch, 看來還有心開發的
Joetsui's blog
Re: 與viewfield奮戰
一切的謎底都解開了。
果然是版本問題。
TKY會找時間去發issue的。
再次感謝joetsuihk的幫助!
tky
Re: 與viewfield奮戰
tky兄..
小弟我目前也有遇到此問題.但我是DRUPAL的新手.看不太懂你們這篇對話的一些專用術語.
是否可以給我一個詳細的教導舉例?
我也是想做讓一個VIEW呈現所有導師的名稱點進去可以看到他們所開的課程...
之前是用BLOG來呈現..雖然可以但是和實際要表達的又有出入..
目前設置完兩個node(師資,課程)後就不知道該怎麼做了@@....
請指點我一下...謝謝
Re: 與viewfield奮戰
好讚,趕快把這篇收藏起來:)