首页
文档
技术
下载
笔记
知识库
风格
联系我们
全站搜索
登录
English
简体中文
繁体中文
UTF-8
技术论坛
通过email发送
Email 地址
*
标题
*
内容
*
在自定义页面中如何调用区块(2.0.X) 现在页面设计人员都很有创意,而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(0 => 'time', 1 => 4, 2 => '360', 3 => '2', 4 => '1', 5 => '0', 6 => '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']), 0, 30); 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中文社区 文明猪 更多... http://xoops.org.cn/modules/newbb/viewtopic.php?topic_id=8142&post_id=30751
Copyright ©
XOOPS
CHINA
|
SITE MAP
|
京ICP备05003401
|
XOOPS Design