LifeType 中文開發論壇

開發 => 模版設計精華區 => 主題作者是: smallmac 於 十一月 11, 2005, 05:31:21 下午



主題: 有關共同作者在同一個blog發表文章的想法
作者: smallmac十一月 11, 2005, 05:31:21 下午
Dear all :

我搜尋了很久似乎沒有人提到我想問的問題,所以我想就貼個文章問問看。

最近我想跟朋友一起合寫一個blog,剛好plog可以支援共同作者,我也是用plog系統,所以可以很輕易的做這件事。

我突然想到,要判斷文章是誰寫的,通常只能從「post by xxx」來看,

在視覺上總是有點不易分辨,因為文章都一塊一塊的,

然後「 post by xxx 」都小小的,不太起眼,放大又很醜(我是視覺派的)。

有沒有可能可以做到:依照發表者,而有不同的顯示方式。

比如說,如果是我 post ,我的那篇文章的區塊背景就顯示紅色,如果是我朋友 post ,他的就顯示黃色。

我死命的在討論區搜尋,唯一找到一個可能可以這樣做的 plugin 是 mark 先生在某篇回文提到的「authentication plugin」 (http://forum.lifetype.org.tw/index.php?topic=149.msg807#msg807)。

我 download 下來看,嗚,看不懂要怎麼使用,如果直接上傳到 plog\ plugins,然後到管理介面的外掛中心去看,沒反應。

我隨便亂想,如果用這種語法:

程式碼:
{if $auth->posterLoggedIn( $poster )}  
{/if}

然後 {if} {/if} 中間告訴plog,他的文章就用背景是紅色的css,有可能做到嗎?

好像有點異想天開喔? :-$


主題: Re: 有關共同作者在同一個blog發表文章的想法
作者: lss十一月 11, 2005, 08:46:33 下午
我覺得好像很容易做到啊!

以 bluish 模版為例子好了,他的 post.template 是一篇文章的模版檔如下:
引用
{assign var="postDate" value=$post->getDateObject()}
{assign var="postOwner" value=$post->getUserInfo()}
<div class="blog">
<h2 class="date">{$locale->formatDate($postDate,"%j %B, %Y")}</h2>
<div class="blogbody">
<h2 class="title">{$post->getTopic()}</h2>
<div class="posted">{$locale->tr("posted_by")} {$postOwner->getUsername()} {$locale->formatDate($postDate,"%H:%M")} |
<img alt="Permalink" src="{$url->getTemplateFile("post.gif")}" width="10" height="11" style="border: 0px" />
....以下省略....
我的想法是,紅色部份可以改成如下:
以 bluish 模版為例子好了,他的 post.template 是一篇文章的模版檔如下:
引用
{assign var="postDate" value=$post->getDateObject()}
{assign var="postOwner" value=$post->getUserInfo()}
<div class="blog_{$postOwner->getUsername()}">
<h2 class="date">{$locale->formatDate($postDate,"%j %B, %Y")}</h2>
<div class="blogbody">
<h2 class="title">{$post->getTopic()}</h2>
<div class="posted">{$locale->tr("posted_by")} {$postOwner->getUsername()} {$locale->formatDate($postDate,"%H:%M")} |
<img alt="Permalink" src="{$url->getTemplateFile("post.gif")}" width="10" height="11" style="border: 0px" />
....以下省略....
然後,替每個作者設定一個 blog_{Username} 的 css class ,例如設定不同的背景色,應該就可以達成你要的目標了。

以上是在我的想像中覺得應該是可行的,你可以試試看。如果確實可行,記得回來貼個連結,展示一下成果哦。 ;-)

最好是連模版及 css 一起分享啦! :-) :-) :-)


主題: Re: 有關共同作者在同一個blog發表文章的想法
作者: smallmac十一月 13, 2005, 11:08:22 下午
lss先生,你的提議成功了!

說真的我也不是程式出身的,只是平時偶而會玩一點而已,所以我一直都沒想到可以這樣做,看了你的程式碼的瞬間我就恍然大悟了。

blog在此 (http://www.smallmac.biz/plog/index.php?blogId=3)。

我自己的blog:floodgate no.6,當初是拿grey改,而這次的就拿 floodgate no.6 來改,總而言之都是 grey 來的。

post.template如下:
引用
<!-- {$url->postTrackbackLink($post)} -->
{assign var="postDate" value=$post->getDateObject()}
{assign var="postOwner" value=$post->getUserInfo()}
<div id="{$postOwner->getUsername()}">
<h3>{$post->getTopic()}</h3>
<span class="date">{$locale->formatDate($postDate,"%Y %B %d")}</span>

{if $currentTemplateFile != "postandcomments" }

<div class="smallfont">
<p>
  {$post->getText()}
</p>
</div>
{else}
<div class="largefont">
<p>
  {$post->getText()}
</p>
</div>
{/if}

<div class="footer">Post by {$postOwner->getUsername()} &nbsp;@&nbsp;{$locale->formatDate($postDate,"%H:%M")}&nbsp;&nbsp;&frasl;&nbsp;
   {foreach name=categories from=$post->getCategories() item=postcategory}
     <a href="{$url->categoryLink($postcategory)}">{$postcategory->getName()}</a>
     {if !$smarty.foreach.categories.last}, {/if}
   {/foreach}
:: <a href="{$url->postPermalink($post)}">{$locale->tr("comment on this")} ({$post->getTotalComments()})</a> :: <a title="{$locale->tr("permalink_title")}" href="{$url->postPermalink($post)}">{$locale->tr("permalink")}</a> :: <a href="{$url->postTrackbackStatsLink($post)}">{$locale->tr("trackbacks")} ({$post->getNumTrackbacks()})</a>
</div>
</div>

然後去css裡面設兩個user的文章css,包括標題、內文、資訊、首頁與內頁的文字大小不同、首頁不縮排但內頁內文要。

差不多就是這樣囉!

謝謝lss先生,cool!


主題: Re: 有關共同作者在同一個blog發表文章的想法
作者: lss十一月 13, 2005, 11:22:56 下午
恭喜囉!smallmac小姐,還是該稱你為 JC?!

anyway ,這個討論應該是屬於模板的討論範圍,我把他搬到模版討論板。又,這還真是個有趣又實用的應用,加入精華區了。