登录 注册

登录

问题 在模板建设中如何新建或者修改模板的位置

更多
2009年08月20日 19:46 #1 作者: star
想请教一下,我在设计新的模板的时候,如何设置模板的位置?位置的新增或者修改都需要修改哪些文件?

我在templateDetails.xml里文件里加入了positions各个位置的名字,可是我在看模板位置的时候似乎没有显示。
我在index.php里用的是Joomla 1.5 Template developer这个DW插件来写的。

下列用户已致谢:: 李丹龙

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

更多
2009年08月20日 23:17 #2 作者: Joomla之门
必须在模板的 index.php 文件中定义出模块位置。你用那个插件来插入相应的代码应该是非常容易的。

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

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

更多
2009年08月21日 02:29 #3 作者: 南荒
在需要位置插入
<div id="XX">
<jdoc:include type="modules" name="XX" style="XXX">
</div>
style 你可以用自带的如xhtml格式,你也可以自已在模板的html文件夹,modules.php添加。
可以通过自定的模块样式添加属于自己的效果。DIV id选择器就需要自己到CSS的template.css里面自己加效果了

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

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

更多
2009年08月21日 08:19 #4 作者: star
<div id="login"><jdoc:exists type="modules" condition="login"><jdoc:include type="module" name="login" style="-1" /></jdoc:exists></div>
我想把login form的位置定义为login,index.php里代码是这样写行吗?

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

更多
2009年08月21日 11:44 #5 作者: 南荒
不行吧。如果你是直接定义一个LOGIN的模块,专门放LOGIN模块的话。只在在index.php里添加:
<div id="login"><jdoc:include type="modules" name="login"/></div>
然后你直接 定义login的ID选择器就可以了,如果你是想显示在HEAD右边:例:
#login {
position:absolute;
right:0;
top:0;
}
当然如果你是想自定义模板格式,就需要在html文件包里添加:mod_login文件包里,里面再加上default.php这样的模板文件就会直接覆盖掉该模块本身自带的模板文件,就可以显示你想要的格式,你可以在该模板文件针对各个位置添加不同的ID,或者class然后通过CSS显示出来你想的效果

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

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

更多
2009年08月21日 14:16 #6 作者: star
模块位置的问题已经解决了,但是我没有做的那么复杂,大部分就像你说的那样,但是像login这个模板格式,我是通过修改默认的CSS格式来实现的。

现在我又碰到另一个问题就是,在模板里运行模块时为什么显示不了。
例如,我在做左侧栏的时候,把模块位置命名为:left_side
我在运行模块时也用运行login模块时的同样代码:
<jdoc:include type="module" name="left_side" style="-1" />
上面的代码不能工作,但我用另一个代码是用Joomla Template Kit 2.0来做的:
<?php if (mosCountModules('left_side')>0) mosLoadModules('left_side',0); ?>

第二种又可以工作,我实在不理解。

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

更多
2009年08月21日 19:38 #7 作者: 南荒
<?php if (mosCountModules('left_side')>0) mosLoadModules('left_side',0); ?>这是joomla1.0的模板代码格式。

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

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

更多
2009年08月21日 20:48 #8 作者: designer
估计是你没有更新那个xml文件,用Joomla Template Kit 2.0的话会自动更新

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

更多
2009年08月22日 14:58 #9 作者: star

<?php if (mosCountModules('left_side')>0) mosLoadModules('left_side',0); ?>这是joomla1.0的模板代码格式。


针对你说的,我的看了一下,temtplateDetial.xml这个文件里<install type="template" version="1.5">这个应该就是设为1.5版本的吧。可是我的网站已经把1.0 Legacy打开了,所以如果是我写的是1.0的模板代码格式,也应该可以工作的啊。

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

更多
2009年08月22日 15:05 #10 作者: star

估计是你没有更新那个xml文件,用Joomla Template Kit 2.0的话会自动更新

加载模块的话,那个文件应该不用更新吧,那个文件里我包括了<files><images><positions><css>这四个。

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

更多
2009年08月22日 15:30 - 2009年08月22日 15:42 #11 作者: 南荒
建议你手工写。用工具的作用不大。因为joomla的.index.php文件和XML文件手工输入的量并不大,模板的着重处还是在CSS处调整。

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留
最后修改: 2009年08月22日 15:42 由 atomys.

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

更多
2009年08月22日 16:30 #12 作者: star

建议你手工写。用工具的作用不大。因为joomla的.index.php文件和XML文件手工输入的量并不大,模板的着重处还是在CSS处调整。

你说的是手写模块?

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

更多
2009年08月22日 18:21 #13 作者: 南荒
模块跟模块位置不一样。模块是模块。

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

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

更多
2009年08月22日 21:09 #14 作者: eric

模块跟模块位置不一样。模块是模块。

对头。

joomla网站建设---www.zsunad.com
本人有些joomla扩展,欢迎索取,QQ:184461298。

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

更多
2009年08月23日 10:07 #15 作者: star
明白,模块的输出已经在手写了。
想问一下,我在系统里新建一个菜单,它会自动生成一个mod_mainmenu的模块,如何修改这个模块的输出内容?
是不是只能通过菜单下面的item类来修改啊?

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

更多
2009年08月23日 15:32 #16 作者: 南荒
模块右边有一个下拉菜单,可以自己改的。

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

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

更多
2010年11月17日 04:52 #17 作者: windy201
windy201 回复了话题: module和modules的区别
回复:

现在我又碰到另一个问题就是,在模板里运行模块时为什么显示不了。
例如,我在做左侧栏的时候,把模块位置命名为:left_side
我在运行模块时也用运行login模块时的同样代码:
<jdoc:include type="module" name="left_side" style="-1" />
上面的代码不能工作,但我用另一个代码是用Joomla Template Kit 2.0来做的:
<?php if (mosCountModules('left_side')>0) mosLoadModules('left_side',0); ?>

第二种又可以工作,我实在不理解。



module和modules的区别:
module和modules都有name属性, 但是module的name指的的是“模块的名称”,modules的name指的是“模块位置的名称”。
如果你想在left_side位置显示login模块,应该为:
<jdoc:include type="module" name="login" style="-1" />
或者
<jdoc:include type="modules" name="left_side" style="-1" />

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

更多
2010年11月17日 08:53 #18 作者: 南荒
你说的第二种做法是joomla1.0的模板的写法,如果你的joomla1.5的系统,而这个方法也有用,只能说明你提开了兼容模式,不提倡使用。
正确的写法应该是 <jdoc include type="modules" name="模块名称" style="这里写具体样式名称,当然样式也不要写"/>
module是特地用在只放一个模块的面包屑的特定用法,一般都不用。

nhuang.com
zhujianbo.com
QQ群:19675428
新浪微博:weibo.cn/388580
循着真理的脚步,追寻,亦不必停留

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