欢迎光临, 访客. 请先 登入註册一个帐号.
十二月 10, 2019, 03:56:14 上午
19594 文章 在 3864 主题 由 4580 会员
最新註册会员: aa123aa1
LifeType 中文开发论坛  |  支援  |  使用与操作  |  使用与操作精华区  |  [社群网志祕技]让使用者自由定义的TopMenu « 上篇主题 下篇主题 »
页: [1]
作者 主题: [社群网志祕技]让使用者自由定义的TopMenu  (阅读 31832 次)
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 « 上篇主题 下篇主题 »
    前往: