登录 注册

登录

问题 首页中joomla默认的文章显示模块是否能够隐藏或者替换?

更多
2011年09月19日 07:20 #1 作者: bug
我使用的是1.7的yoo_enterprise模板,因为首页新闻模块需要头条带图片而其他为列表的显示效果,而joomla难以实现,所以打算隐藏或者取消这个模块,求大神解答,同时求一个比较强大的1.7文章展示模块

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

更多
2011年09月20日 12:24 #2 作者: Joomla之门
首页的新闻模块应该还是一个独立的模块,不可能直接 hardcoded 在模板里面。你可以在后台的“模块管理”里面找一下发布到那个位置的模块,看看到底是哪个模块在控制,然后将它停止发布,换用你自己的图文展示模块即可。

你所说的“头条带图片其它为链接列表”样式的文章模块,用 News Show Pro GK4 图文展示模块 应该能实现。

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

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

更多
2011年09月20日 14:05 - 2011年09月21日 00:56 #3 作者: bug
谢谢老白的回复,不过我想要的是隐藏首页的主题内容区域(joomla1.7默认的精选文章板块,也就是component主体部分内容),而这个在joomla模块管理和模板位置管理中我找不到,也可能是因为yoo模板的关系。在joomlask.com中找到一个办法,但也无用。方法如下:
大多模板首页原代码如下(templates\模板名\index.php):
<div id="xxx" class="clearfix">
<jdoc:include type="message" />
<jdoc:include type="component" />
</div>
一般改为
<?php if (JRequest::getVar('view') != 'frontpage'): ?>
 
<div id="xxx" class="clearfix">
<jdoc:include type="message" />
<jdoc:include type="component" />
</div>
 
<?php endif; ?>
或者
<?php if (JRequest::getVar('option') != 'com_content' or JRequest::getVar('view') != 'frontpage'):  ?>
 
<div id="xxx" class="clearfix">
<jdoc:include type="message" />
<jdoc:include type="component" />
</div>
 
<?php endif; ?>
就能够在首页无内容时隐藏主体内容区域,但我两种方法都试了都无用,我使用的yoo_enterprise模板中首页layouts/template.php文件中并没有“<jdoc:include type="component" />”,它是定义在/component.php中。
模板的demo中也把该区域隐藏了...试过了几种办法依然无法隐藏,网站建设已基本完成,但总是有这么个空白区域挂在那。求各大神费神为小弟解答!!
最后修改: 2011年09月21日 00:56 由 bug.

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

更多
2011年09月21日 01:03 #4 作者: mymyhope
<div id="component" class="floatbox">
																				<?php echo $this->warp->template->render('content'); ?>
																			</div>

看下有没有上面的代码
将<?php if (JRequest::getVar('option') != 'com_content' or JRequest::getVar('view') != 'frontpage'): ?>加在前面
将<?php endif; ?>加在后面

www.cn21cn.com
Magento中文网站
www.magentochina.org
QQ:703640

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

更多
2011年09月21日 06:13 #5 作者: bug
还是不行,也找不到你所说的代码

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

更多
2012年02月03日 08:38 #6 作者: windancer2003
我昨天也在想这个问题,我仔细看了joomla1.7菜单选项中已经没有了forntpage这个类型了。
所以JRequest::getVar('view') != 'frontpage' 这个条件永远成立。这是我的猜测。

我想了一个解决办法还没有测试,好象可以为不同的菜单项指定不同的模板,如果为首页菜单指定另一个模板,而在那个模板文件index文件中,去掉以下两行代码:
<jdoc:include type="message" />
<jdoc:include type="component" />

工作室网站: iyieer.com

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

更多
2012年02月03日 15:59 - 2012年02月03日 23:03 #7 作者: 野草工作室
上面的方法我也用过,是可以成功。不过这样做就等于使用了两个模板,当用户浏览网站的首页和非首页页面的时候,就会加载两套模板的文件(css、JS、模板图片等);解决的方法是把首页的模板的css、JS加载语句指向非首页模板的位置。

我刚写了一篇关于 Joomla隐藏首页文章的多种方法 的文章,大家也可以参考交流一下 :lol:

推荐使用这样的方法进行隐藏:
<?php if (JRequest::getVar('Itemid') !=1): ?>
 
<div id="xxx" class="clearfix">
<jdoc:include type="message" />
<jdoc:include type="component" />
</div>
 
<?php endif; ?>


野草工作室提供专业 Joomla建站 服务,点击查看我们的 Joomla案例
最后修改: 2012年02月03日 23:03 由 Joomla之门.
下列用户已致谢:: windancer2003

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

更多
2012年02月03日 18:01 #8 作者: 野草工作室
测试了我自己的方法,只适用于joomla 1.5,joomla 2.5不适用。

如果需要隐藏1.7的yoo_enterprise模板的首页内容,只需要修改templates/yoo_enterprise/layouts/template.php 文件
在<html>标签之前加入以下代码:
<?php 
 $home = 0;
 $menuitem = & JSite::getMenu();
 if ($menuitem->getActive() == $menuitem->getDefault()) {
 $home = "1";
 }
?>
然后用下面代码修改内容区域:
<?php if (!$home) : ?>
// DO SOMETHING
<?php endif; ?>

具体的是这样使用:
<?php if (!$home) : ?>
<div class="wrapper-t1">
<div class="wrapper-t2">
<div class="wrapper-t3"></div></div>
</div>
<div class="wrapper-1">
<div class="wrapper-2">
<div class="wrapper-3">
<?php echo $this->warp->template->render('content'); ?>
</div>
</div>
</div>
<div class="wrapper-b1">
<div class="wrapper-b2">
<div class="wrapper-b3"></div>
</div>
</div>
<?php endif; ?>

参考教程:http://www.toolboxcreations.com/articles/templating/9-template-tricks-testing-for-the-front-page


野草工作室提供专业 Joomla建站 服务,点击查看我们的 Joomla案例
下列用户已致谢:: windancer2003

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

更多
2012年02月03日 23:11 #9 作者: Joomla之门
一个简单问题搞复杂了!

这其实是模板设计者的责任。我觉得一个合格的Joomla模板必须允许用户能实现“首页不显示文章(内容)”。我不是在这里说空话,举两个例子:

第一个例子就是 Joomlagate.com 当前正在使用的模板,我只要不把文章“发布到首页”,那么首页就不显示文章内容。然后我调整一下首页的模块发布位置,就实现了“门户式网站首页”的样式。

另一个例子是 我上次汉化的 Callie Rush 模板 。在汉化过程中我注意到其中一句是:

是否在网站首页显示“组件/文章”(主体)区域?


这就说明该模板已经提供了一个选项,允许用户(站长)选择在网站首页直接禁用 component 这个区域。—— 点一下鼠标就实现了,何必自己去修改代码?

我的意思是说,这种功能应该成为“Joomla模板设计的业界标准”,成为一个基本必备元素!如果你的模板没这个功能,还是早点换模板吧。 Joomla 本来就是面向大众的 DIY 式的建站系统,如果搞成了高手才能玩转的神秘武器,就悲哀了。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!
下列用户已致谢:: windancer2003

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

更多
2012年02月04日 16:09 #10 作者: windancer2003
谢谢老白的提醒,回头可以研究Callie Rush 模板如何实现这个功能。
事实上joomla不仅仅是大众diy的工具,很多程序员也在用它开发复杂的网站,不自己定制模板就无法完成网站的布局。如何在2.5中简单有效屏蔽component区是应该有一个好的解决办法。

工作室网站: iyieer.com

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

更多
2012年02月04日 16:21 #11 作者: windancer2003
野草工作室提供的教程很棒,梦寐以求的解决方法。
实现原理是:判断页面是否为default页面,如果是则屏蔽component。
这又出现另一个问题,如果一个非default页面想要屏蔽component又该怎么办呢?

工作室网站: iyieer.com

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

更多
2012年02月05日 01:23 - 2012年02月05日 02:54 #12 作者: 陈忠
我使用ZT模板的时候发现另外一种解决方案,我们知道每个菜单项都可以设定附加CSS样式,那么我们可以判断,如果这个附加CSS名为home,或者你其它想隐藏的页面,就可以把这个.home 或其它css样式设定为隐藏,这样就不显示了,但这个附加CSS样式的值在ZT模板里是通过ZT-TOOLS类来获取的,如果不是用ZT模板,我不知道还有什么代码可以方便取得这个菜单附加CSS值? 如果在博客布局里,可以取到这个值,但如果直接在模板代码里用,就不起作用,因为博客布局里专门针对这个值的函数,实在不用,也可以借用ZT-TOOLS的类,反正代码也不长,这样就可以实现隐藏任意页面的component内容,而不仅仅只是默认页了,不知野草兄弟有没有更简洁的方法来获取这个菜单项的CSS附加值?
最后修改: 2012年02月05日 02:54 由 Joomla之门. 原因: 紧邻帖无需引用

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

更多
2012年02月05日 05:55 #13 作者: 星仔码头
让commponet区域输出空白(我没理解错吧)不难啊!

星仔码头-Joomla爱好者乐园
www.xingzai.org

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

更多
2012年02月05日 06:27 - 2012年02月05日 15:01 #14 作者: 陈忠
按你的理解是不难,我一开始也以为是这样,可有些模板针对component设计了特别的样式,如果只是简单的不输入内容,但这些样式还是会显示,所以才需要判断的
最后修改: 2012年02月05日 15:01 由 Joomla之门.

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

更多
2012年02月05日 07:40 #15 作者: 星仔码头
看样子还是自己写模板稳妥!

星仔码头-Joomla爱好者乐园
www.xingzai.org

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