登录 注册

登录

问题 如何实现模块嵌套模块?

更多
2007年12月04日 11:26 - 2007年12月04日 13:18 #1 作者: Evan
Evan(原创)
Jootabs是一个非常有意思的模块,正如老白所说,它像是一个模块容器,可以把多个模块整合到一个模块位置,从而节约大量版面。
问题是这个模块对新手而言使用起来略显复杂,为了帮助他们快速上手,本人在此班门弄斧一回,哈哈!
1.如何开始?
当然是先用Joomla的模块安装功能安装,论坛中曾有人提到安装失败,但我在本地和远程测试均获得成功,相信是本地环境配置的问题!考虑到兼容性,建议大家都安装集成的Xampp作为本地测试环境。
2.怎样部署该模块?
理论而言,只要您的模板定义了的模块位置都可以部署它,但问题是,很多新手并不知道自己所用的免费模板已经定义了那些位置,而且该模块每次只显示装在其中的一个模块的内容,为了不在版面中显示大量空白,所以它并不适合部署在中栏,建议部署在右边栏或者左边栏。
注:当然这也要视具体情况来定,如果你装入其中的模块都适合宽幅显示,那么部署在中栏也是一个不错的想法。
3.参数定义?
这是最为重要的一步,具体如下:

General Settings
链接的唯一名称: 定义该模块全局唯一的链接名称,可以使用默认值,也可以自己定义
标签的唯一名称: 定义该模块全局唯一的标签名称,可以使用默认值,也可以自己定义
怎样切换标签:    选择标签切换方式
要使用的标签数量:选择同时显示几个模块标签,如果是中栏,大约为5-6个,如果是边栏,大约为2-3个,要保持美观,这也要视您为模块定义的标签名称的长度,最好保持所有装入其中的模块标签名称长度一致。
启用 自动切换: 是否启用自动切换
停止 自动切换: 如果启用自动切换,是否同时启用行为侦测停止切换,即在用户鼠标指向或点击该模块标签时停止自动切换
切换延迟: 如果启用自动切换,请定义切换间隔时间
到了这里,大家应该都没什么问题,请继续:
模块 CSS 类后缀: 可以添加CSS后缀来显示模块的自定义风格
标签模板: 定义标签模板,内建了8个模板,如果不满意,您可以自己修改。
标签宽度: 如果是边栏,通常是160-180,如果是中栏,通常500以上,最好查阅模板的css文件,与相应栏位保持相同的宽度。
显示模块名称: 是否显示模块名称
到了这里,大家也不会碰到问题,问题最大的是下面:
第一个标签的名称: 这里输入您想装入其中的第一个模块名称,可以重新定义,也可以与原模块一致,中英文均可。
第一个标签的模块: 关键是这里:
您需要输入的是模块位置名称!!!而不是模块名称,而且每个模块位置只能放入一个模块。

a. 大多数免费模板都没有使用user5-user10,这样的话,您可以在这里输入user5,下一项输入指定模块名称和user6….以此类推。
b. 然后保存推出,别忘发布该模块哦!另外最好在页面上部关闭本模块的标题显示。
c. 进入前台模块管理页面将您装入的模块逐项发布到指定的模块位置。
d. 然后预览前台,怎样,效果出来了吧!如果不满意还可以再次进入后台另选本模块的模板。
e. 如果user1-user10都被使用了,而且都装入了不只一个模块怎么办?没关系,我们可以进入Joomla的“网站-模板管理-模块位置页面”,干脆自定义10个新位置,例如mod1 – mod10 ,然后再进入本模块设置页面,为所有指定装入的模块重新分配这10个位置,再将指定模块重新发布到为其分配的新位置就可以了!!!
第二个标签的名称 以下同上
……
第十个标签的模块
.........................
首先打开的标签: 定义您希望进入页面后第一个显示的模块标签的序号

.............................

例如:您打算装入最新新闻和热门文章两个模块!
那么你需要如下填写:
第一个标签的名称: 最新新闻
第一个标签的模块: user5或mod1(选用后者,必须在Joomla的“网站-模板管理-模块位置页面”,自定义该新位置)
第二个标签的名称: 热门文章
第二个标签的模块: user6或mod2(选用后者,必须在Joomla的“网站-模板管理-模块位置页面”,自定义该新位置)

别忘了在最上面关闭为该模块显示标题。以及发布该模块到指定位置(必须是您的模版中已经定义的位置,例如left,right,banner等等)
….
保存后将自动进入前台模块管理页面,设置最新新闻模块重新发布到user5或mod1,设置热门文章模块重新发布到user6或mod2。

保存

预览前台

成功了吧!

Good  luck!

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan
最后修改: 2007年12月04日 13:18 由 qinyi.

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月04日 12:13 #2 作者: Joomla之门
呵呵,说实话,我对 JooTabs 也是很发怵,安装了几次都不会设置,从来没有体验到它的喜人效果。

我对作者的开发思路是不满意的,我认为应该让用户来指定要包含的其他模块的 ID ,而不是“模块位置”。

众所周知,在后台的“模块列表”上,每一个模块都有唯一的一个 ID 号码,因此,通过 id 来指定模块是最合理的。

现在是通过模块位置来指定,如果碰到模板中模块位置很少,或者用户在同一个位置之前曾经发布了多个模块,就比较麻烦。

希望作者能更改思路,使用 ID 号码,或者直接使用下拉式选单来指定要包含的模块(第一个位置在选单中选定后,第二个位置选单中就去掉已经被指定的,以此类推,以防重复) ,这样岂不是更方便用户?

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月04日 13:44 - 2007年12月04日 14:00 #3 作者: Evan
看来我还应该补充说明一下,我想原作者是考虑到Joomla的处理流程,不愿意涉及Joomla的核心hacks,众所周知,要启用某个模块的功能,就必须发布这个模块,并且为这个模块指定位置。如果模板里面有这个位置,那么通过ID指派Jootabs来装入该模块的话,该模块将会在页面的指定位置和Jootabs中都显示,而如果不发布该模块的话,通过ID指派Jootabs来装入该模块也无法显示。如果强行用Jootabs来为重置装入模块的发布状态有可能造成不可预料的后果(数据库中会出现发布状态项为已发布而发布位置却未定义,因为Jootabs并不是一个模板中的模块位置)。因此作者采用了一个取巧的办法,那就是为要装入的模块指定一个你的模版上根本没有定义或者说不存在模块位置,然后通过这个位置名来传递要装入的模块。这个思路应该说并没有错!而且实现起来容易。但问题是:要么为每个模块分配一个位置,通过位置来告诉Jootabs装入那个模块,要么通过模块在该位置排序的序号来识别模块。但采用序号很容易造成位置紊乱,这就需要Jootabs创建一个函数来作判断,而不是简单利用Joomla的mosLoadModules()函数。
当然进一步还是可以考虑使用ID指派,因为通过ID指派,你只需要定义一个模版上不存在的位置(这是为了在不hack Joomla核心的情况下不造成重复显示。),把所有要装入的模块都发布到这个位置就行了,而不必为每一个模块的分配一个位置。
当然还有其他的方法,比如把Jootabs做成触发器,那么就可以在任意位置显示,那就更灵活了,也更方便了。呵呵!

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月04日 14:13 #4 作者: bbss
这个与tabmodul相比谁好些?

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月04日 14:30 - 2007年12月04日 15:45 #5 作者: Evan
tabmodul原来无法设置参数,需要修改原文件,不过2.2版本已经可以了,但无法定义多个模板和自动切换。但它倒是可以实现只定义一个未使用模块位置(最好是模版中不存在的),然后把你想要装入的所有模块都按你期望的顺序发布到这个位置,再在设置中指定这个位置就OK了,当然要记得将这个模块发布到你的模版中存在的位置。最好也取消本模块标题显示。另外它不支持自定义标签,所以多个标签引用原模块名称可能会不美观。
Jootabs可以在后台设置参数,虽显繁琐,倒也灵活。他支持自定义短标签,然后可以启用模块名称显示来实现点击时显示完整标签。
两者都是靠模板位置来传递参数。

如果需要,附件是tabmodul 2.2的汉化UTF8版,已集成中文教程!

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月04日 15:55 #6 作者: Joomla之门
很好!感谢 Evan 又给我们带来富有营养的一课!

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月04日 16:53 - 2007年12月04日 17:01 #7 作者: bbss
学习了:)谢谢!
tabmodul需要把所有要发布的模块都放到同一个未使用的模块位置上,不是很方便:(
又找到一个tab类的,有用过的分享下心得,给大家一个参考。谢谢!
extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,2940/Itemid,35/

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月04日 19:17 #8 作者: 马腾化
Joomtab加载时最让我头疼的是N个TAB全部以竖向加载1~3秒,然后收起。

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 10:14 #9 作者: Evan
我远程测试了这两个模块,没有发现这个问题呀!点击这里测试<a href=" www.nzuni.org " target="_blank">优利营养在线

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 12:13 #10 作者: bbss
Evan 有没用过 JoomlaWorks Tabs & Slides Module ?不知与Joomtab相比那个好些

extensions.joomla.org/component/option,com_mtree/task,viewlink/link_id,2940/Itemid,35/

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 13:32 #11 作者: Evan
mod_jw_ts V1.0版可以说比tabmodul 2.2更进了一步,它虽然也是使用位置来传递模块参数,但它比tabmodul具有更好的模块兼容性和稳定性,它还可以实现滑动可收缩下拉菜单(或者叫卷帘菜单)效果,这对于导航菜单较多的站点,也就是说主菜单、其它菜单、用户菜单等很长的网站非常有用。如果老白没有时间,我可以考虑汉化它。

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 13:42 #12 作者: Evan
考虑到老白还在休假,我看了一下这个模块的翻译工作量不大,如果老白还没动手,干脆我晚上抽空汉化了明天发布出来吧!

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 13:57 #13 作者: bbss
谢谢Evan 好像Joomtab没有滑动效果,功能上貌似没有超越mod_jw_ts V1.0的地方

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 15:12 #14 作者: Evan
Joomtab的确没有滑动特效,但它的优点是充分利用系统闲置资源的高度灵活的可定制性。如前所述,它的自定义短标签使得一行可以装入更多模块标签而不破坏界面美观,有兴趣的css设计者还可定制修改自己的多达8种或以上风格样式,如果你要在同一网站的同一页面或不同页面装入超过两个或以上的Jootab,它的多风格选项将极为有用。另外它的兼容性、稳定性和多语系的支持也非好,只是使用起来复杂些!三个比较而言,各有千秋吧!一定要说点是非,那么我认为mod_jw_ts V1.0版优于tabmodul 2.2版。

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 15:33 - 2007年12月05日 15:37 #15 作者: bbss
不错!不错!感谢 Evan 的详细讲解

Joomtab可以复制多过分别使用不同风格来布局网站?
最后修改: 2007年12月05日 15:37 由 lanmao483.

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 18:24 - 2007年12月05日 18:28 #16 作者: Evan
链接的唯一名称:    定义该模块全局唯一的链接名称,可以使用默认值,也可以自己定义
标签的唯一名称:    定义该模块全局唯一的标签名称,可以使用默认值,也可以自己定义
我想可能我没有详细说明上述两个选项,这两个选项正是应用多个Jootabs实例的关键,通过为每个实例定义唯一的ID来实现多个实例复用时可以显示独立风格,简单的说,例如你可以把Jootabs用模块复制功能复制7次,只要为这8个实例定义不同的链接名和标签名,你就可以随心所欲的将其部署到不同的页面位置,也可以部署到不同的页面,他们可以各自定义装入不同的模块,显示不同的风格样式。
需要注意的是,我这里说的使用默认值是指仅启用一个Jootabs,如果启用多个最好自己定义,名称最好使用字母或数字,简单一点就好,不要使用特殊字符,例如:jootabone,jootabtwo......

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 20:11 - 2007年12月05日 20:16 #17 作者: Evan
JoomlaWorks Tabs & Slides Module 模块汉化工作量不大,而且模块兼容性和使用方便性都不错,还具有折叠滑块特效!非常适合用于门户网站的模块整合!需要的朋友可在此下载附件里的utf8汉化版,已集成中文教程!
官方还推荐与其提供的<a href=" www.joomlaworks.gr " target="_blank">Ultimate Content Display模块并用。
注:UCD是一个可以使用三种不同方式(unordered list, ajax cross-fader or jQuery-based cross-fader/slider)在任意模块位置获取和显示您的Joomla!/Mambo网站内容或新闻聚合条目的"超级内容检索" 模块。

<a href=" www.egoclassic.cn ">伊歌.凯澜中国 - 这个 E-mail 受反垃圾邮件程序保护,您需要启用 JavaScript 才能查看。">Evan
最后修改: 2007年12月05日 20:16 由 jervisnaver.

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年12月05日 22:16 #18 作者: bbss
感谢!感谢!又学习了:)

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年01月02日 00:22 - 2008年01月02日 02:39 #19 作者: longbird

你就可以随心所欲的将其部署到不同的页面位置,也可以部署到不同的页面

请问是否有人遇到这种情况 。。。
模组jootabs可以部署到不同的页面,但无法部署到同一页面的不同位置?
例如:我复制了一个jootabs,部署到同一页面的user1,footer区块。
原本的jootabs自行定义了
链接的唯一名称:alink
标签的唯一名称:acontent
放置在footer位置。

复制的jootabs自行定义了
链接的唯一名称:blink
标签的唯一名称:bcontent
放置在user1位置。

在footer位置的jootabs显示正常。
但另一个在user1位置的jootabs无法生效,Tab无法动作,且全部的Tab中模组内容会一起显示。
就像附图中所示
TAB11是投票模组,TAB21是最新讨论区模组,TAB11和TAB21两个Tab中的内容同时显示在同一画面了。

(运行环境:Joomla! 1.0.12 + 模版 rhuk_solarflare_ii)


ps:Tab的内容有user3 ,user4,user5,user6 , 及自行定义的mod1,mod2,mod3模组位置。

登录 或者   注册一个会员帐号 来参与讨论

更多
2008年01月02日 01:27 #20 作者: zhongxing
预览呢!没预览不知道效果!

:bomb:
WWW.MAN83.COM
[URL=http://www.man83.com"]man83男人本色,是您泡马子,吊凯子,网络淘金,成功励志,提高生活质量之必备宝典!![/URL]
男人一天去两次“[URL=http://www.man83.com"]man83男人本色[/URL]"是睿智的!
诚招友情链接!:music:

登录 或者   注册一个会员帐号 来参与讨论