andywang
|
|
« 於: 三月 10, 2005, 04:26:59 下午 » |
|
我現在的需求是當使用0.32的時候,我們看到summary.php載入的頁面形式如下: 图-1 這個不符合我們的要求,我想將它轉換成如下格式: 图-2 也就是圖-2中的類別 標題 作者 時間 人氣/回復 來源 等資訊來源我想用程式來實現,可是我對plog這個系統採用的mvc不瞭解,相互之間的調用非常複雜,看起來很費事,我想請教一下您,就是我做成圖-2,怎麼實現?如果您方便請給我一個例子,當然用1.0也會用到這個問題的
|
|
|
已記錄
|
|
|
|
markwu
|
|
« 回覆文章 #1 於: 三月 10, 2005, 10:27:04 下午 » |
|
在 pLog 的世界中,要改變網頁的編排並非直接修改程式,而是要修改模版 (template)。以彙整網頁的例子來看,並不需要直接修改程式,而是要修改 summary.template 修改 /plog/templates/summary/summary.template {include file="summary/header.template"} {foreach from=$posts item=post} <h3>{$post->getTopic()}</h3> {assign var="postDate" value=$post->getDateObject()} {assign var="postOwner" value=$post->getUserInfo()} <span class="date">{$postOwner->getUsername()} | {$locale->formatDate($postDate,"%d %B, %Y %H:%M")}</span> <p> {$post->getText()} </p> <div class="footer"> {assign var="postCategory" value=$post->getCategory()} {assign var="blogId" value=$post->getBlog()} <!-- I don't think we need so many links in the summary... but please feel free to change things here :) -->
<a href="{$url->blogLink($blogId)}">{$blogs[$blogId]->getBlog()}</a> :: <!--<a href="{$url->postPermalink($blogId, $post)}">{$postCategory->getName()}</a> ::--> <a href="{$url->postPermalink($blogId, $post)}">{$locale->tr("comment on this")} ({$post->getTotalComments()})</a> :: <a title="{$locale->tr("permalink_title")}" href="{$url->postPermalink($blogId, $post)}">{$locale->tr("permalink")}</a> <!--:: <a href="{$url->postTrackbackStatsLink($blogId, $post)}">{$locale->tr("trackbacks")} ({$post->getNumTrackbacks()})</a>--> </div>
{/foreach} {include file="summary/footer.template"}
變為 {include file="summary/header.template"} <table> <tr> <td>Category</td> <td>Topic</td> <td>Author</td> <td>Time</td> <td>Comments</td> </tr> {foreach from=$posts item=post} <tr> {assign var="postDate" value=$post->getDateObject()} {assign var="postOwner" value=$post->getUserInfo()} {assign var="postCategory" value=$post->getCategory()} {assign var="blogId" value=$post->getBlog()} <td>{$postCategory->getName()}</td> <td><a href="{$url->postPermalink($blogId, $post)}">{$post->getTopic()}</a></td> <td>{$postOwner->getUsername()}</td> <td>{$locale->formatDate($postDate,"%d %B, %Y %H:%M")}</td> <td>{$post->getTotalComments()}</td> </tr> {/foreach} </table> {include file="summary/footer.template"}
就可以達到你想要的類似效果。pLog 是採用 smarty 模版引擎。你可以參考 http://smarty.php.net 來更瞭解 smarty。或是參考 http://wiki.lifetype.net/index.php/PLog_1.0/Templates 來瞭解模版如何運作。 Mark
|
|
|
已記錄
|
|
|
|
andywang
|
|
« 回覆文章 #2 於: 三月 10, 2005, 10:43:14 下午 » |
|
那如果我再加入别的检索条件怎么办,不一定在您程序里涉及了,我怎么加入它?
您最好能否拿我的需求做一个独立的例子,以后怎么改我也就知道了,我的意思是不用考虑summary.php及其模板的影响,我如果就只是为了显示这部分如图-2数据格式,我该如何实现?
|
|
|
已記錄
|
|
|
|
andywang
|
|
« 回覆文章 #3 於: 三月 10, 2005, 10:51:15 下午 » |
|
希望您抽空能单独做个我需求所示模板及其程序的例子,我以后就知道怎么使用它了,这样您为我实现了,可是我还是看不明白,因为我不知道程序和模板是如何实现的,谢谢
|
|
|
已記錄
|
|
|
|
andywang
|
|
« 回覆文章 #4 於: 三月 11, 2005, 10:28:00 上午 » |
|
按照上面代码做了,可是还是不能实现,我也清除了tmp下的catche了
|
|
|
已記錄
|
|
|
|
markwu
|
|
« 回覆文章 #5 於: 三月 11, 2005, 11:03:59 上午 » |
|
我改錯檔了!我竟然改到 0.32 的檔案。晚一點在放上正確範例。
mark
|
|
|
已記錄
|
|
|
|
markwu
|
|
« 回覆文章 #6 於: 三月 11, 2005, 01:27:02 下午 » |
|
我真是『小白』阿! 你把 templates/summary/recent.template 改為 <h4>{$locale->tr("summary_latest_posts")} <a href="{$url->getRssUrl()}?summary=1"><img src="{$url->getUrl("/imgs/rss_logo_small.gif")}" alt="RSS" /></a> </h4> <table> <tr>
<td>Topic</td> <td>Author</td> <td>Time</td> <td>Comments</td> </tr> {foreach from=$posts item=post} {include file="summary/post.template"} {/foreach} </table> 把 templates/summary/post 改為 <tr> {assign var="postDate" value=$post->getDateObject()} {assign var="postOwner" value=$post->getUserInfo()} {assign var="postCategories" value=$post->getCategories()} {assign var="blog" value=$post->getBlogInfo()} {assign var="request" value=$blog->getBlogRequestGenerator()} <td><a href="{$request->postPermalink($post)}">{$post->getTopic()}</a></td> <td>{$postOwner->getUsername()}</td> <td>{$locale->formatDate($postDate,"%d %B, %Y %H:%M")}</td> <td>{$post->getTotalComments()}</td> </tr> 應該就可以了! summary.template 已經不用了。 我竟然改到他..... 真是豬頭。 Mark
|
|
|
已記錄
|
|
|
|
andywang
|
|
« 回覆文章 #7 於: 三月 11, 2005, 07:02:39 下午 » |
|
不好意思,我还要获得 文章分类 的这一列,我如何获得呢?我试图用 $category->getName()没有获得成功?不知道如何调用?
|
|
|
已記錄
|
|
|
|
andywang
|
|
« 回覆文章 #8 於: 三月 11, 2005, 07:51:41 下午 » |
|
问题我解决了,我是通过加入/templates/summary/post.template如下代码实现的 {assign var="postCategory" value=$post->getCategory()} <td>{$postCategory->getName()}</td>
现在有新的问题,就是为什么我每次只能显示一条记录?我想全部显示并且实现分页功能?怎么办?
|
|
|
已記錄
|
|
|
|
markwu
|
|
« 回覆文章 #9 於: 三月 13, 2005, 10:12:55 上午 » |
|
问题我解决了,我是通过加入/templates/summary/post.template如下代码实现的 {assign var="postCategory" value=$post->getCategory()} <td>{$postCategory->getName()}</td>
现在有新的问题,就是为什么我每次只能显示一条记录?我想全部显示并且实现分页功能?怎么办? 因為 Summary 頁面的 Post 物件只抓取每一個 blog 的一篇文章。避免有人一直寫,結果都抓到他的文章。 Pager 必須自己 implement。目前 admin 頁面有。在其他的頁面如 summary, archive 可能要到 1.1 或是 1.2 Mark
|
|
|
已記錄
|
|
|
|
|
markwu
|
|
« 回覆文章 #11 於: 三月 14, 2005, 06:17:43 下午 » |
|
用原始的安裝檔覆蓋過去阿!只要你沒改其他的東西,應該是沒問題。
Mark
|
|
|
已記錄
|
|
|
|
Anonymous
訪客
|
|
« 回覆文章 #12 於: 三月 15, 2005, 11:54:56 上午 » |
|
用原始的安裝檔覆蓋過去阿!只要你沒改其他的東西,應該是沒問題。
已經把post.template刪掉(本來沒有=_=) 把之前按上面改的原檔覆蓋回去 但summary畫面還是無法正常耶... (就像下面這樣,重複很多次) Exception message: Smarty error: unable to read resource: "summary/post.template" Error code: 512 -- Backtrace -- /home/webadmin/public_html/plog/class/template/smarty/Smarty.class.php(1102): trigger_error /home/webadmin/public_html/plog/class/template/smarty/Smarty.class.php(1596): template.trigger_error /home/webadmin/public_html/plog/class/template/smarty/Smarty.class.php(1397): template._fetch_resource_info /home/webadmin/public_html/plog/class/template/smarty/Smarty.class.php(1908): template._is_compiled /home/webadmin/public_html/plog/tmp/%%-66^%%-66975902^recent.template.php(21): template._smarty_include /home/webadmin/public_html/plog/class/template/smarty/Smarty.class.php(1911): include /home/webadmin/public_html/plog/tmp/%%-41^%%-41152182^index.template.php(25): template._smarty_include /home/webadmin/public_html/plog/class/template/smarty/Smarty.class.php(1273): include /home/webadmin/public_html/plog/class/template/template.class.php(83): smarty.fetch /home/webadmin/public_html/plog/summary.php(179): template.fetch /home/webadmin/public_html/plog/class/controller/controller.class.php(118): summaryview.render /home/webadmin/public_html/plog/summary.php(190): controller.process 為何問題顯示一直有smarty呢?
|
|
|
已記錄
|
|
|
|
lss
|
|
« 回覆文章 #13 於: 三月 15, 2005, 01:47:31 下午 » |
|
Exception message: Smarty error: unable to read resource: "summary/post.template" 檢查檔名是否拼錯? 或是 修改後owner換人(比如 root),權限改變,apache 讀不到它?
|
|
|
已記錄
|
|
|
|
andywang
|
|
« 回覆文章 #14 於: 三月 15, 2005, 06:36:35 下午 » |
|
<h4>{$locale->tr("summary_latest_posts")} <a href="{$url->getRssUrl()}?summary=1"><img src="{$url->getUrl("/imgs/rss_logo_small.gif")}" alt="RSS" /></a> </h4> <table> <tr>
<td>Topic</td> <td>Author</td> <td>Time</td> <td>Comments</td> </tr> {foreach from=$posts item=post} {include file="summary/post.template"} {/foreach} </table>
这个里面我把 Topic,Author 等换成中文为何显示就乱码了?
|
|
|
已記錄
|
|
|
|
|