主題: [請益]smarty的技巧(關於文章彙整) 作者: hsuzy 於 二月 09, 2006, 07:48:35 下午 程式碼: <ul> . 八月 2005 [9] . 四月 2005 [1] . 十一月 2004 [2] . 八月 2004 [1] . 四月 2004 [1] -- 因為如果月份太多, 會拉很長, 但是我又不喜歡下拉式的 我想做的是像 2005 八月[9], 四月[1] 2004 十一月[2], 八月[1], 四月[1] -- 不知道哪裡有類似樣板可以參考? 另外 {$month->getName() 不知道如果定義的? 看 api文件也看不太懂 :'( 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: lss 於 二月 09, 2006, 08:26:59 下午 hi hsuzy:
很抱歉,可能要讓你失望了 :-( 月份彙整的部份,在 LT 裡面是以 你可以看看 class/view/blogview.class.php 裡面的 _getArchives() 函式。 如果要達成你的要求,一是改上述的程式,另一是寫個 plugin 來提供你要的功能。 lss 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: lss 於 二月 09, 2006, 11:54:43 下午 hi hsuzy:
我有實作一個 hack ,一個修改版的 blogview.class.php ,配合模版的修改,可以達成如附圖的效果。月份沒有接在同一行是因為 CSS 的關係。 不過,使用這個 hack 的話,會有幾個後遺症,先講清楚: 1.所有的模版都要配合修改,如果你的 LT 站是多人使用的話,要考慮一下囉! 2.未來 LT 更新版本,hack 極可能(99%以上)要重新修補才能繼續使用。 如果你不怕麻煩,仍舊有興趣的話,回應一下吧! 另外,如果有人路過覺得這個不錯也回應一下,若很多人有興趣,我就試試回報到臭蟲追蹤系統,看看能不能被加入 1.1 版。若被加入,未來升級 1.1 時,那是所有模版都要改才能用了。 lss 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: james 於 二月 10, 2006, 12:02:38 上午 hi hsuzy: 我~~我~~我~~超有興趣的 :) 不過想到模版要更改,又有點矛盾。我有實作一個 hack ,一個修改版的 blogview.class.php ,配合模版的修改,可以達成如附圖的效果。月份沒有接在同一行是因為 CSS 的關係。 不過,使用這個 hack 的話,會有幾個後遺症,先講清楚: 1.所有的模版都要配合修改,如果你的 LT 站是多人使用的話,要考慮一下囉! 2.未來 LT 更新版本,hack 極可能(99%以上)要重新修補才能繼續使用。 如果你不怕麻煩,仍舊有興趣的話,回應一下吧! 另外,如果有人路過覺得這個不錯也回應一下,若很多人有興趣,我就試試回報到臭蟲追蹤系統,看看能不能被加入 1.1 版。若被加入,未來升級 1.1 時,那是所有模版都要改才能用了。 lss 不過我還是感興趣啦 ^_^ 我還有另一個想法是,只秀出當年的月份,其它的就只秀年份的連結(點了後在秀出該年的月份) 這應該可以用 lss的hack在加上javascript來達成 :) 我也來研究看看囉 ^^ James. 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: hsuzy 於 二月 10, 2006, 01:14:01 上午 感謝 lss的說明, 看到沒辦法使用現成的變數, 小弟用粗淺的smarty功力硬幹了
程式碼: <ul> 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: lss 於 二月 10, 2006, 08:39:10 上午 hi hsuzy:
你太謙虛了,會這樣用 smarty 設計模版,怎可說是“粗淺“呢 ;-) 建議一下,還可以再“精鋉“一下,改成如下: 引用 <ul> 紅色部份,可以減少一對冗餘的 <li></li> 標籤,而藍色的部份,則可讓其他語系也能適用。{assign var="archivesYear" value=3000} <li> {foreach from=$archives item=month} {assign var="archivesYearTemp" value=$month->getName()|regex_replace:"/[^ 1234567890]/":""} {if $archivesYear neq $archivesYearTemp} {assign var="archivesYear" value=$archivesYearTemp} {$archivesYear}</li><li> {else} , {/if} <a title="{$month->getUrl()}" href="{$month->getUrl()}"> {$month->getName()|regex_replace:"/[ 1234567890]/":""} [{$month->getNumArticles()}] </a> {/foreach} </li> </ul> 當然,這只能適用於月份彙整的標題一定是用「非數字月份」加上「數字年」的格式。根據 blogview.class.php 裡的程式碼,這個格式是可以設定的,只是沒有加入管理介面而已。 hi james: 既然你也有興趣了,我整理一下再發佈,大家來玩玩看吧! lss 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: lss 於 二月 10, 2006, 11:21:27 上午 hi all:
我把文章整理出來了,請看 兩層式的文章月份彙整 (http://blog.nlhs.tyc.edu.tw/post/2/109) 因為是修改核心做出來的,所以同步發佈在 核心補強 版的這裡 (http://forum.lifetype.org.tw/index.php?topic=1879.0)了。 lss 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: Nyserq 於 五月 17, 2006, 09:47:51 下午 之前沒看到這串討論,昨天也是想半天,結果想出幾乎一樣的做法...
差別在於regular expression的取法 程式碼: {assign var="name" value=$month->getName()} 另外我想再請教另一個關於彙整頁的問題 我想在每一個分類頁或按月彙整頁的上方顯示該分類名稱(或描述)或月份名稱 不過除了可以用$showAll這個變數來判斷是不是在分類或日期彙整頁之外 好像沒辦法知道是在哪一個分類或月份 不知道我講的清不清楚,請問有辦法可以做到嗎? 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: lss 於 五月 17, 2006, 10:47:51 下午 年 => $Year (數字)
月 => $Month (數字) 文章類別名稱 => $category->getName() 搭配 $showAll 應該夠用了吧。 你可以來我的 blog 看看效果是不是你要的。 :-) lss 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: Nyserq 於 五月 17, 2006, 11:04:23 下午 年 => $Year (數字) 月 => $Month (數字) 文章類別名稱 => $category->getName() 搭配 $showAll 應該夠用了吧。 你可以來我的 blog 看看效果是不是你要的。 :-) lss 改好了,感謝.... :-) 請問這些物件有文件可查嗎? 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: lss 於 五月 17, 2006, 11:28:47 下午 改好了,感謝.... :-) 那個~~~這個~~~請問這些物件有文件可查嗎? 好像沒有耶 :-$ 我是追原始碼找到的。你可以看看 class/action/defaultaction.class.php 。 LifeType 的 MVC 架構與實作,不是三言兩語可以講完的 :-( lss 主題: Re: [請益]smarty的技巧(關於文章彙整) 作者: markwu 於 五月 18, 2006, 10:38:23 上午 目前唯一的 物件文件,可能要到 API 去看: http://api.lifetype.org.tw。
或是 wiki http://wiki.lifetype.org.tw Mark |