歡迎光臨, 訪客. 請先 登入註冊一個帳號.
三月 29, 2024, 12:09:51 下午
19595 文章 在 3865 主題 由 4580 會員
最新註冊會員: aa123aa1
LifeType 中文開發論壇  |  支援  |  使用與操作  |  使用與操作精華區  |  [社群網誌祕技]讓使用者自由定義的TopMenu « 上篇主題 下篇主題 »
頁: [1]
作者 主題: [社群網誌祕技]讓使用者自由定義的TopMenu  (閱讀 42274 次)
oc
LifeType 中文發展團隊
一般會員
*****
文章: 115


檢視個人資料 個人網站
« 於: 四月 27, 2005, 11:37:51 下午 »

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

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

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

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

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

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

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

一、先在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的人可以在外掛程式上署名,但是提出這個技巧,卻找不到一個「作品」可以署名,還真是給他有點不滿足啊,呵呵。
已記錄

lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #1 於: 四月 28, 2005, 07:17:23 上午 »

了不起!原來用最簡單的方法也可以完成這樣的功能。

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

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

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
zine
新手見習
*
文章: 6


檢視個人資料
« 回覆文章 #2 於: 四月 28, 2005, 03:49:02 下午 »

谢谢老猫~ 書呆子
已記錄
Anonymous
訪客
« 回覆文章 #3 於: 四月 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">  <--這個也是要自己加嗎?

謝謝
已記錄
minstrel
二十四橋明月夜
總版主
一般會員
*****
文章: 106



檢視個人資料 個人網站
« 回覆文章 #4 於: 四月 28, 2005, 05:08:03 下午 »

唔.
這這....這樣我又可以少port一個plugin了.....
已記錄

所謂思念
有時只是單純的等待
坐看世界如何一點一點將自己遺忘
月色染白了髮
oc
LifeType 中文發展團隊
一般會員
*****
文章: 115


檢視個人資料 個人網站
« 回覆文章 #5 於: 四月 28, 2005, 08:58:37 下午 »

引用自: lss
了不起!原來用最簡單的方法也可以完成這樣的功能。

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

引用

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

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

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

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

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

markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #6 於: 四月 30, 2005, 10:30:51 下午 »

引用自: 老貓

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


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

Mark
已記錄

lss
我不是被~拉~~出來的,不要叫我大大!
總版主
超級會員
*****
文章: 1511



檢視個人資料 個人網站
« 回覆文章 #7 於: 四月 30, 2005, 11:29:12 下午 »

感覺好像以前在 phpNuke 裡看過的自訂block的功能。不過,那是 for admin only 的.....

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

沒找過 常見問題集或不知道 如何在 LifeType 中文開發論壇發問的人,恕不回答問題
oc
LifeType 中文發展團隊
一般會員
*****
文章: 115


檢視個人資料 個人網站
« 回覆文章 #8 於: 四月 30, 2005, 11:48:24 下午 »

純抬槓 吐舌頭 。對我自己的需求而言,現在這樣已經很夠了。但是對社群網誌而言,讓使用者使用template editor,門檻和潛在的危險恐怕會更高。

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

markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #9 於: 五月 09, 2005, 02:01:29 上午 »

引用自: 老貓
純抬槓 吐舌頭 。對我自己的需求而言,現在這樣已經很夠了。但是對社群網誌而言,讓使用者使用template editor,門檻和潛在的危險恐怕會更高。

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


這也是我不喜歡的方式 傷心

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

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

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

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

Mark
已記錄

a780411
新手見習
*
文章: 16


檢視個人資料
« 回覆文章 #10 於: 十一月 20, 2005, 04:36:27 下午 »

請問一下樓主...

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

您是怎麼做的??
已記錄
bibicall
版主
超級會員
*****
文章: 640


我是豬老大


檢視個人資料 個人網站
« 回覆文章 #11 於: 十一月 20, 2005, 06:10:33 下午 »

你只能選擇一樣嚕 吐舌頭
畢竟這只是不想改動太多模版的權宜之計
你如果要保留blog簡介
那你只好放棄這個密技的
且,1.02好像無法使用這個密技了
因為1.02無法使用內嵌 HTML語法
所以.....
已記錄

我的虛擬主機基本資料如下
Operating system: Linux
Apache version: 1.3.37
PHP version: 4.4.4
MySQL version: 4.1.21-standard
ericlin677
新手見習
*
文章: 8


檢視個人資料
« 回覆文章 #12 於: 十一月 26, 2005, 04:56:18 下午 »

不好意思!看了讓使用者自由定義的TopMenu的教學,請教一下!那字體的大小顏色字體改在哪設定呢?是style_default.css 嗎?如果是那又該修改style_default.css 的哪個標題呢?
« 最後編輯時間: 十一月 26, 2005, 04:59:28 下午 由 ericlin677 » 已記錄
markwu
系統管理員
超級會員
*****
文章: 3928


Mark Wu


檢視個人資料 個人網站
« 回覆文章 #13 於: 十一月 26, 2005, 11:22:27 下午 »

這要看你的模版用哪一個而定。基本上在 1.0.2 後已經把內嵌 HTML 的功能移除了,因為怕被 inject 進不良意圖的程式碼或是 HTML。

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

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

Mark
已記錄

頁: [1]
LifeType 中文開發論壇  |  支援  |  使用與操作  |  使用與操作精華區  |  [社群網誌祕技]讓使用者自由定義的TopMenu « 上篇主題 下篇主題 »
    前往: