Drupal 只用於顯示的模組不是太多
Tabbed block 是其中一個
但Views 才是其中的佼佼者
所以會用Views, 會改Views, 就可以應付大部分的顯示需要
Views 中有一個幫助的模組, Views Theme Wizard.
雖然這個sub-module 仍然非常幼嫩(相對Views)
但已經提供最基本的, 實用的幫助.
啟用了Wizard 之後
你會發現Views 的 tabs 多了一項 "wizard"
Wizard 內有兩個select list
兩個buttom

第一個select list 選一個要自定顯示方式的views
第二個select list 會對左面的buttom 有影響
右面的則沒有
先講一下右面 "List theme fields" 的按鈕
右面按鈕的作用是提供修改list 的顯示方式 (對table, teaser, full body沒有影響)
通常用作修改fields 內部的html, 加tags 之類
上面textarea 是Views 內可以修改的 field
也就是Views 內, Fields 一欄所選的所有field (如果Views 設定內沒有選擇fields, 則為空)
例如 phptemplate_views_handle_field_frontpage2_node_title
這些是函數名, 而這個函數是放到你的theme 內的template.php 之中
而這個函數的內容, 就是下面的textarea 內的代碼
上面列出的每一個函數名, 在Views 內建都是使用下面這個例子作函數

實際的操作為,
1.將下面textarea 內的內容複製到你的template.php 內
2.然後換上一個適當的函數名
3.再修改函數內容
修改的方法則要看你的需要
比如在body 後加一個版權符號:
1.將下面textarea 的內容複製到你的template.php 內
2.改函數名為 phptemplate_views_handle_field_frontpage2_node_body
3.在每一個return 之後加一個©
就是這麼簡單
我的其中一個實際應用是將一個imagefield 變成 有超連結的imagefield
其中的工作原理:
一個模組之內有好幾個theme_ 開頭的函數
用作加減html 代碼
這些theme_ 函數是可以被template.php 內的 phptemplate_ 開頭的函數替換
而wizard 下面textarea 的內容就是呼叫相關模組內的theme_ 函數(即多了phptemplate一步)
所以修改phptemplate 的內容也即修改theme 函數

最後要留意的是
以上的theme 都是只針對page list view而已
通常用作修改fields 內部的html, 加tags, class 之類
左面的select theme type 明日再談
| Attachment | Size |
|---|---|
| theme3-1.gif | 11.63 KB |
| theme3-2.gif | 25.55 KB |
| theme3-3.gif | 8.59 KB |

Comments
好东西,支持。
好东西,支持。
请问一下,通过这个Th
请问一下,通过这个Theme Wizard,可不可以views list变成两个竖排的样式,比如一个最新文章的block:
node title 1 node title 2
node title 3 node title 4
node title 5 node title 6
我的理解是将theme wizard中的代码复制到主题的template.php中,然后在style.css中调整样式加个float什么的。不知道是否正确。
我这样实验成功了,
我这样实验成功了,不过css我怎么也写不好,这种双列的css应该怎么写呢?
我就很简单的这么写的:
width: 45%;float: left;
clear: none;
但是在ie下间距太大,在ff下完全错位,呵呵,我对css还是刚起步。
這是一個方法,
這是一個方法, 這的確用不到theme wizard
我也會用到這種css style
至於移位問題
則需要經驗, 很難一本通書讀到老
joe,请教个问题 例如
joe,请教个问题
例如我用views列出了一些文章的标题,如果我想文章的标题是随机颜色,有没有办法通过Wizard修改?
或者通过wizard的修改在对每个标题产生不同的class,以便用css来控制?
我不懂PHP,因此请教joe了
你只要使用title
你只要使用title 的那個wizard 提供的函數
加到template.php
再改那函數的內容, 做到隨機顏色, 或隨機class name
但應該都要使用簡單的php 控制
你可以先改一下title 的內容開始
試試每一個標題都加一個逗號做結尾
再試加class 到title, 或隨機顏色
您好,我看不懂您的
您好,我看不懂您的意思耶
3.在每一個return 之後加一個© => 不懂
我的其中一個實際應用是將一個imagefield 變成 有超連結的imagefield =>可否貼出您的這一段程式,這樣大家可能會更了解
假設原本wizard 的
假設原本wizard 的 return 是
return abc;你改成
return abc."def";就可以了
imagefield 變超連結:
return "<a>".abc."</a>"請問一下views裡面的the
請問一下views裡面的theming wizard該如何使用?
比如說我選用的theme為theme/abc/
我是不是該把產生的code放在theme/abc/資料夾裡面的template.php?
不過我這麼做好像都不會有改變
能否請您說明一下整個流程
不好意思您的教學非常棒,不過我這新手還是有點看不懂XD
例如:我如果要修改某個views產生的tracker的外貌及字形大小是不是該這麼做?
感謝回覆
不好意思,原來是我沒
不好意思,原來是我沒看清楚只有list view可以用theming wizard改變
再請教
若我安裝了views bonus 這模組
我想在grid view這顯示狀態修改它的框架或是改變字型
該怎麼著手?
感謝!
Post new comment