用户名 密码 记住我 还未注册?

在自定义页面中如何调用区块(2.0.X) [技术论坛 - 主题综合]

XOOPS China 讨论区 > XOOPS Theme (主题) > 主题综合 > 在自定义页面中如何调用区块(2.0.X)

正在浏览:   1 名游客



 到底部   前一个主题   下一个主题  [无发表权] 请登录或者注册

(1) 2 3 »


在自定义页面中如何调用区块(2.0.X)
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 229 | 精华: 7
等级: 14; EXP: 14
HP: 0 / 328
MP: 76 / 5740
离线
现在页面设计人员都很有创意,而xoops基本功能没有办法满足,比如他们会把一个区块的内容放置到很随意的位置,这样有时会使开发人员很头痛,下面是自定义页面的区块调用两种方法(当然,您也可以自己直接写代码实现区块实现的功能):

条件:区块存在,页面非正常的xoops页面,而是我们自己定义的。
此程序在2.0.13及2.0.14上是通过的。

示例:美工想要一个页面,要求:header和footer是和整站统一的,而中间:
三个区块构成第一层,
一个区块构成通栏第二层,
两个区块构成通栏第三层

好了,这是一个单独的页面,而这个页面中共使用了3+1+2六个区块,按现在的xoops功能是达不到如此的页面效果,那么我们就写一个单独的页面吧:
下面是这个演示页面的布局架构
<?php
include "mainfile.php";//包含主配置文件,需要按照此文件的路径变化
include "header.php";//包含header文件,需要按照此文件的路径变化
//第一层
echo "<table><tr><td>";
//这里是第一层第一个区块代码
echo "</td><td>";
//这里是第一层第二个区块代码
echo "</td><td>";
//这里是第一层第三个区块代码
echo "</td></tr></table>";

//第二层
echo "<table><tr><td>";
//这里是第二层区块代码
echo "</td></tr></table>";

//第三层
echo "<table><tr><td>";
//这里是第三层第一个区块代码
echo "</td><td>";
//这里是第三层第二个区块代码
echo "</td></tr></table>";
include 
"footer.php";//包含footer文件,需要按照此文件的路径变化
?>


好了,架构布置了,现在开始填写该填写的代码吧:
我们首先查看需要的区块的安装id,方法我就不讲了,很多的。
在该插入区块代码的地方用如下代码:

$thesearchblock 
= new XoopsBlock(1659);//1659是区块的id,一般网站有这么多区块的的可能性不大
//下面做一下区块是否存在的判断,以免死掉
if(is_object($thesearchblock) && $thesearchblock->getVar('bid')>0){
    
$bresult =& $thesearchblock->buildBlock();
    if (
$bresult) {
    
$xoopsTpl->assign_by_ref('block'$bresult);
    
$btpl $thesearchblock->getVar('template') != '' $thesearchblock->getVar('template') : "system_block_dummy.html";
    
$bcontent =& $xoopsTpl->fetch('db:'.$btpl'blk_'.$thesearchblock->getVar('bid'));
    echo 
$bcontent;
    }
}

这样就能在指定的位置显示指定的区块了
此方法是使用了区块的原模板

另外一种方法,通过直接调用区块的程序获得数据,如:

include_once XOOPS_ROOT_PATH."/modules/newbb/blocks/newbb_block.php";//首先我们引用要调用的区块执行文件
//传递区块的配置选项参数,请分析一下区块设置与执行的代码,这样才能知道如何配置
$options=array(=> 'time'=> 4=> '360'=> '2'=> '1'=> '0'=> '177');
$allnewtopic b_newbb_topic_show($options);//获得区块执行后返回的数组
//print_r($allnewtopic);//如果不知返回什么内容,就用这种方法查看一下
$i=0;
//下面是将内容按照我们网页的要求显示出来
echo "<table>";
foreach(
$allnewtopic['topics'] as $atopic){
    
$title xoops_substr(htmlspecialchars($atopic['title']), 030);
    if(
$i>0){$linestyle=" style='text-align:left;border-top:1px solid #969696;background-color:#ffffff;padding:5px 0px 5px 0px;'";}else{$linestyle=" style='background-color:#ffffff;text-align:left;padding:5px 0px 5px 0px;'";}
    echo 
"<tr><td width="1%"".$linestyle.">·</td><td width="59%"".$linestyle."><a href="".XOOPS_URL."/modules/newbb/viewtopic.php?topic_id=".$atopic['id']."&forum=".$atopic['forum_id']."" target='_blank'>".$title."</a></td><td width='40%'".$linestyle.">".$atopic['time']."<br />".$atopic['topic_poster']."</td></tr>";
$i++;
}
echo 
"</table>";

这里是一个页面中调用论坛区块代码获得数据的方法,我们从区块的执行代码中获得了数据,然后将数据按我们的要求显示出来。

呵呵,就到这里吧,现在德国和阿根廷下半场进行了40分钟,1-1平。
xoops.org.cn xoops中文社区 文明猪

2006/7/1 0:43
_________________
人生真的很无奈,转眼即逝,好好珍惜吧。但愿最终闭眼的时候没有什么后悔的事情。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 在自定义页面中如何调用区块(2.0.X)
Support Team
注册日期:
2005/10/15 22:19
所属群组:
注册会员
Dev+Hack
帖子: 62 | 精华: 1
等级: 6; EXP: 75
HP: 0 / 143
MP: 20 / 2066
离线
好东东!收藏...看球的时候还有如此雅致阿..

补时4分钟。

2006/7/1 0:48
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


Re: 在自定义页面中如何调用区块(2.0.X)
资深会员
注册日期:
2006/1/10 1:51
所属群组:
注册会员
帖子: 199 | 精华: 1
等级: 13; EXP: 14
HP: 0 / 303
MP: 66 / 4150
离线
好东东!
阿根廷 don't cry

2006/7/1 1:59
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 在自定义页面中如何调用区块(2.0.X)
Support Team
注册日期:
2005/4/30 13:09
来自 安徽安庆
所属群组:
网站管理员
帖子: 510 | 精华: 3
等级: 20; EXP: 84
HP: 0 / 496
MP: 170 / 7788
离线

好东东,值得收藏!

因没看到聚会上演示的作法,有几点想法:

1.xoops采用区块的理念,有很大原因是这些区块维护起来只需一般编辑可以完成,采用此种hack如果在没有程序员的帮忙下更换对应区块难度太大,当然如果能够采用在聚会上所演示的方法,一般编辑也就可以换区块了,但具体怎样实现不明了,还望多指教。

2.如果在article建立空白页面多个,在cbb建立空白页面多个,.......,这些空白页面需要手动建立吗?然后在对应页面添加区块,这些页面是如何被管理的?页面删除,更新,等操作是否都需程序员去完成?页面样式是否都要重新写?

3.在空白页面能否象表格定义?例如刚开始可以放三块,添加时可供选择,一行多少列?首先选3,再在对应位置添加区块,第二行选2,再添加2区块,如此等等......


2006/7/1 8:53
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 在自定义页面中如何调用区块(2.0.X)
资深会员
注册日期:
2006/5/25 19:53
所属群组:
注册会员
帖子: 336 | 精华: 2
等级: 17; EXP: 12
HP: 0 / 403
MP: 112 / 5069
离线
引用:

文明猪 写道:
我们首先查看需要的区块的安装id,方法我就不讲了,很多的。


呵呵,能否不用“方法就不讲了”,而把那方法copy过来(说明是copy的)不是更好么。

2006/7/1 11:19
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 在自定义页面中如何调用区块(2.0.X)
网站管理员
注册日期:
2005/10/29 13:32
来自 北京
所属群组:
网站管理员
注册会员
ComSupp
推广组
帖子: 2214 | 精华: 25
等级: 38; EXP: 43
HP: 187 / 935
MP: 738 / 13326
离线
XOOPS的theme制作越来越酷了。

2006/7/1 11:31
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 在自定义页面中如何调用区块(2.0.X)
资深会员
注册日期:
2004/8/8 14:25
所属群组:
注册会员
帖子: 329 | 精华: 3
等级: 16; EXP: 94
HP: 0 / 398
MP: 109 / 7103
离线
在dedecms中,每个区块的调用都是一个函数,只要在自己制作的摸板中插入此函数就可以显示内容。类似js调用。xoops如果这样的话,就方便了。

2006/7/4 8:24
_________________
当前我使用新用户名: 东至
这个帐号不用了。重归xoops,新心情,新帐号!
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 在自定义页面中如何调用区块(2.0.X)
资深会员
注册日期:
2006/5/25 19:53
所属群组:
注册会员
帖子: 336 | 精华: 2
等级: 17; EXP: 12
HP: 0 / 403
MP: 112 / 5069
离线
支持,用xoops的人應該都是希望區塊安排更靈活一些的

2006/7/4 12:10
_________________
邵阳社区
http://www.sylive.cn
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 在自定义页面中如何调用区块(2.0.X)
网站管理员
注册日期:
2005/10/29 13:32
来自 北京
所属群组:
网站管理员
注册会员
ComSupp
推广组
帖子: 2214 | 精华: 25
等级: 38; EXP: 43
HP: 187 / 935
MP: 738 / 13326
离线
引用:

东至 写道:
在dedecms中,每个区块的调用都是一个函数,只要在自己制作的摸板中插入此函数就可以显示内容。类似js调用。xoops如果这样的话,就方便了。


xoops就是这样啊,甚至更强大。
如果你去参加过这次北京用户的聚会,就有很好的体验。

2006/7/4 17:55
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 在自定义页面中如何调用区块(2.0.X)
Support Team
注册日期:
2004/9/20 23:30
所属群组:
注册会员
Dev+Hack
帖子: 229 | 精华: 7
等级: 14; EXP: 14
HP: 0 / 328
MP: 76 / 5740
离线
回复agl :
国人对网站的界面表现与国外的不同,人们喜欢类似新浪这样的门户类型,包括个人、公司及其他的各种类型的应用。而大部分应用网站很少专职技术人员维护,因此给网站内容更新人员一个比较方便的页面管理是CMS系统应该做到的,我想,XOOPS的页面管理的方便性也是受人欢迎的原因之一。

1.我写的这部分内容不是给编辑用的,是给网站开发过程中使用的,所以不可能给编辑使用。在聚会上演示的方法我发布过此模块,开发人员可改进使用。
2.空白页面是根据需要建立的,正常情况下这样的页面有几个就应该够了,请不要在某个模组下面建立很多横多空白页面,建议专门建立一个简单的模组就可以了,具体建立方法有相关的教程。这些定制的页面是需要管理员来完成的,当然,可以直接通过程序来管理这些文件,让编辑去管理,但我并不建议这样做。页面样式是需要重新写的,因为这个页面是系统达不到要求才做的,它的样式肯定和其他的不同。
3.这种方法是可以实现的,但现在没有实现,但我发布的那个hack+模组基本上可以实现每行四个区块的效果,列数是可以随意的,但一个网站有10列就不少了。我原先计划过使用每行任意多个区块的方法,但限于会对内核有些变动就放弃了,因为人们还是不希望用hack的,会对升级造成麻烦。

我还计划过使用纯div+css对版面进行布局,但后来也放弃了,因为IE和firefox有些差别,这些总是让我头痛,包括javascript,有时为了一个功能,我把两个浏览器都打开,唉——,现在想想,垄断有时也有点好处。

2006/7/4 22:29
_________________
人生真的很无奈,转眼即逝,好好珍惜吧。但愿最终闭眼的时候没有什么后悔的事情。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


(1) 2 3 »

  [无发表权] 请登录或者注册


不可查看帖子。
不可发帖。
不可回复。
不可编辑自己的帖子。
不可删除自己的帖子。
不可发起投票调查。
不可在投票调查中投票。
不可上传附件。
不可不经审核直接发帖。
不可使用主题类别。
不可使用HTML语法。
不可使用签名档。

[高级搜索]