LifeType 中文開發論壇

支援 => 使用與操作精華區 => 主題作者是: oc 於 四月 27, 2005, 11:37:51 下午



主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: oc四月 27, 2005, 11:37:51 下午
最近打算好好利用pLog的多網誌功能幫朋友架部落格,pLog的程式功能很強大,可是在社群服務方面好像還有一些小功能尚未補齊,以前只有自己用還不覺得有啥麻煩,現在要做社群,就產生困難了,其中我覺得有個很關鍵的不足,就是TopMenu沒辦法讓使用者自由定義。

這樣有很多個性需求就沒辦法滿足,例如,我是誰?這是什麼站?我為什麼要成立這個站?我的著作權宣告是什麼?(如果有Wiki)我的Wiki在哪裡?(如果另外有相簿)我的相簿在哪裡?我的留言本在哪裡?……這些常常出現在上方選單的功能,幾乎沒辦法用標準模版滿足個別需求。

以前自己改模版,可以把上方選單(Top Menu)直接做連結,指到單篇文章去(例如最常見的,指定一篇文章成為留言版之類的)。個人架站時,這麼做倒也不難,但如果要經營社群網誌,每個人的模版都要手動去改,那工程可不得了。

有什麼方法解決這個問題嗎?當然用plugin或TemplateEditor或直接用內建的「我的連結」,是有機會解決,不過總覺得麻煩。

昨天忽然靈光一閃,想到一個好點子,可以完全滿足上面所說的功能,而且不需要寫plugin,不需要特別為個別使用者修改模版(當然也不用要求使用者自行操作TemplateEditor),只要用pLog現有功能,就可以完成通用模版,讓每個網誌的使用者自由定義自己的上方選單。

這個點子說穿了一點也不值錢,其實就是充分利用現成的getAbout變數而已。因為getAbout會取得個別網誌所屬的「分類描述」的內容,而那個內容的輸入框又可以接受html語法,因而我們可以讓使用者在裡面加上他自己定義的超連結,愛怎麼加就怎麼加。

我已做好範例,現在連到「老貓學出版 (http://b-oo-k.net/blog/)」,我的上方選單(如何使用本站|電子報精華區|關於本站|留言本│好站連結|作者登入)就是用新方法完成的。這個技巧特別有趣的地方是做法非常簡單,請看:

一、先在header模版裡把{$blog->getAbout()}加到Topmenu區裡面,我自己的例子是這樣的:

程式碼:
<div id="Topmenu">
  {$blog->getAbout()}
  <a href="{$url->templatePage("links")}">{$locale->tr("links")}</a> |
  <a href="{$url->getAdminUrl()}">作者登入</a>
 </div>

二、把你想要放在選單區的東西寫成正式文章,例如「關於本站」,例如「FAQ」,例如「著作權聲明」等等,想放什麼上去就寫他一篇;

三、最後到後台「個人網誌設定→網誌設定→分類描述」裡面,填好上述文章的超連結,例如我的網誌裡填寫的內容是這樣的:

程式碼:
<a href="http://b-oo-k.net/blog/post/1/24">如何使用本站</a> |
 <a href="http://bookhome.info/bookpedia/pmwiki.php/Bookpedia/EPaperSelection">電子報精華區</a> |
 <a href="http://b-oo-k.net/blog/post/1/222">關於本站</a> |
 <a href="http://b-oo-k.net/blog/category/1/32">留言本</a> │

好了,這樣就完成了。事實上做完了第一步,pLog架站管理員的工作就算完成了,剩下的事情就是把我這篇文章提示給你的網誌使用者,請他們從第二步開始接著做就行了。

在每個模版的TopMenu區都加上getAbout參數,並且提示使用者本文所說的小技巧,你的pLog就擁有讓使用者自由定義TopMenu的超級功能了。

 ※ ※ ※

寫下這篇以後,忽然有個小小的感想,就是寫plugin的人可以在外掛程式上署名,但是提出這個技巧,卻找不到一個「作品」可以署名,還真是給他有點不滿足啊,呵呵。


主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: lss四月 28, 2005, 07:17:23 上午
了不起!原來用最簡單的方法也可以完成這樣的功能。

我還曾為了這個想破頭,想寫個 plugin 來完成,但是這個比較簡單方便。

強烈推薦!
=====================
報告版主,這個一定要加入精華區!


主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: zine四月 28, 2005, 03:49:02 下午
谢谢老猫~ 8-|


主題: Re: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: Anonymous四月 28, 2005, 05:07:44 下午
引用自: 老貓


一、先在header模版裡把{$blog->getAbout()}加到Topmenu區裡面,我自己的例子是這樣的:

程式碼:
<div id="Topmenu">
  {$blog->getAbout()}
  <a href="{$url->templatePage("links")}">{$locale->tr("links")}</a> |
  <a href="{$url->getAdminUrl()}">作者登入</a>
 </div>





不好意思>"<
請問"header模版"是指ADMIN資料夾裡的嗎?
<div id="Topmenu">  <--這個也是要自己加嗎?

謝謝


主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: minstrel四月 28, 2005, 05:08:03 下午
唔.
這這....這樣我又可以少port一個plugin了.....


主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: oc四月 28, 2005, 08:58:37 下午
引用自: lss
了不起!原來用最簡單的方法也可以完成這樣的功能。

呵呵,我要是會寫plugin,恐怕也不會想出這種怪「步數」了。

引用

請問"header模版"是指ADMIN資料夾裡的嗎?
<div id="Topmenu"> <--這個也是要自己加嗎?

header模版是指任何你打算這麼做的模版,偏偏就是你說的admin模版用不著。 :-P 那個div只是我的模版界定上排選單的區段,你應該用你的。要加div的話還要看CSS檔有沒有同樣的標籤。抱歉說得很亂,我想你恐怕要從最基本的如何改模版開始研究起了。我自己也是一步一步研究起的。

Dear minstrel,呵呵,沒想到幫到你。不過你那個0.32版的plugin我還是很懷念啊。

倒是繼續有個想法提一下請大家參考。

既然這種getAbout的變數這麼好用,我們能不能多要幾個呢?如果加一個getLogo放在TopBanner區,不就可以讓blogger自由設定banner圖檔了嗎?加一個getAnnouncement放在邊欄,也可以讓blogger自由設定公告了。亂想的。 :-D


主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: markwu四月 30, 2005, 10:30:51 下午
引用自: 老貓

既然這種getAbout的變數這麼好用,我們能不能多要幾個呢?如果加一個getLogo放在TopBanner區,不就可以讓blogger自由設定banner圖檔了嗎?加一個getAnnouncement放在邊欄,也可以讓blogger自由設定公告了。


這個我有想過,不過真的就必須寫外掛程式了。只是既然已經有 template editor,我就懶得寫了 :-P

Mark


主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: lss四月 30, 2005, 11:29:12 下午
感覺好像以前在 phpNuke 裡看過的自訂block的功能。不過,那是 for admin only 的.....

我是一直覺得,做為多用戶的 blog 系統,pLog 給予 blogger 太多自由與權限。多人用的系統原本就要有一點專制的,給予 blogger 太多,就是給 admin 找麻煩,而且也可能危害到其它的 blogger。blogger 應該專注在自己發表的文章,而不是有多少能夠admin的權限。可能跟很多的 pLog 使用者其實是個人使用有關吧!


主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: oc四月 30, 2005, 11:48:24 下午
純抬槓 :-P 。對我自己的需求而言,現在這樣已經很夠了。但是對社群網誌而言,讓使用者使用template editor,門檻和潛在的危險恐怕會更高。

使用getAbout模式還有一個好處,不必為每個網誌儲存他獨特的模版,就可以有獨特的功能甚至外觀。也許對整個網誌的運效率會有影響,例如萬一某社群站的一千個使用者都改了符合他所需的模版,顯然pLog得把這一千個模版都存起來? :-S


主題: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: markwu五月 09, 2005, 02:01:29 上午
引用自: 老貓
純抬槓 :-P 。對我自己的需求而言,現在這樣已經很夠了。但是對社群網誌而言,讓使用者使用template editor,門檻和潛在的危險恐怕會更高。

使用getAbout模式還有一個好處,不必為每個網誌儲存他獨特的模版,就可以有獨特的功能甚至外觀。也許對整個網誌的運效率會有影響,例如萬一某社群站的一千個使用者都改了符合他所需的模版,顯然pLog得把這一千個模版都存起來? :-S


這也是我不喜歡的方式 :-(

其實有跟 Oscar 做過一些討論,他覺得作為一個產品本身的彈性要夠,如果要作這些限制,架站的人必須要自己來作。

所以要用 pLog 來架站的人,得要自己花一點心思來決定 pLog 要怎麼展現。像我曾經跟 Minstrel 討論,有沒有辦法我們直接做到向 roodo 的修改模版的方式,當然是有。只是我跟 Minstrel 可以修改 程式,所以我們做的出來,而別人可能就不一定了。 :-(

** 其實我比較喜歡直接定個兩欄跟三欄的模版,然後呢,只讓使用者可以改 CSS 跟裡面的某個區塊就好。

在作一個產品的想法,跟作一個專案(為了某個社群或網站),這裡的想法是很不同的。  :-D

Mark


主題: Re: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: a780411十一月 20, 2005, 04:36:27 下午
請問一下樓主...

那原本的網誌簡介怎麼辦??

您是怎麼做的??


主題: Re: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: bibicall十一月 20, 2005, 06:10:33 下午
你只能選擇一樣嚕 :-P
畢竟這只是不想改動太多模版的權宜之計
你如果要保留blog簡介
那你只好放棄這個密技的
且,1.02好像無法使用這個密技了
因為1.02無法使用內嵌 HTML語法
所以.....


主題: Re: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: ericlin677十一月 26, 2005, 04:56:18 下午
不好意思!看了讓使用者自由定義的TopMenu的教學,請教一下!那字體的大小顏色字體改在哪設定呢?是style_default.css 嗎?如果是那又該修改style_default.css 的哪個標題呢?


主題: Re: [社群網誌祕技]讓使用者自由定義的TopMenu
作者: markwu十一月 26, 2005, 11:22:27 下午
這要看你的模版用哪一個而定。基本上在 1.0.2 後已經把內嵌 HTML 的功能移除了,因為怕被 inject 進不良意圖的程式碼或是 HTML。

所以你可能要透過下面的方式來定義自行或是顏色。 :-)

程式碼:
<div style="xxxx">
{$blog->getAbout()}
</div>

Mark