zbp已有模块内容的更新(重建)的两种方法

都是以插件的形式实现,以侧栏标签云模块为例

一、对原有模块内容的重写。

(1)首先挂接接口 

 Add_Filter_Plugin('Filter_Plugin_Zbp_Load','BuildModule_Populartags');

(2)接口函数的编写

//热门标签模块重建(开始)
function BuildModule_Populartags()
{
    global $zbp;
    $zbp->RegBuildModule('tags', 'BuildModule_Populartags');
    $s = '';
    $i = $zbp->modulesbyfilename['tags']->MaxLi;
    if ($i == 0)
        $i = 25;
    $array  = $zbp->GetTagList('*', '', array(
        'tag_Count' => 'DESC'
    ), $i, null);
    $array2 = array();
    foreach ($array as $tag) {
        $array2[$tag->ID] = $tag;
    }
    ksort($array2);
    
    foreach ($array2 as $tag) {
        $s .= ' <a href="' . $tag->Url . '" title="' . $tag->Count . '个话题" style="font-size:12px"> ' . $tag->Name . ' </a>';
    }
    
    return $s;
}
//重建热门标签模块结束

启用方法:进入模块管理的tags列表,点击提交就可以移到侧栏使用了。

二、对原有模块内容的直接替换。

(1)挂接接口:

Add_Filter_Plugin('Filter_Plugin_Index_Begin','Tblogpublished');
Add_Filter_Plugin('Filter_Plugin_Search_Begin','Tblogpublisheds');

(2)替换函数的编写:

function Tblogpublished(){
	global $zbp;
	if(isset($zbp->modulesbyfilename['tags'])){
	$zbp->modulesbyfilename['tags']->Content =Tblog_Get_tags();
	}
}
function Tblogpublisheds(){
	global $zbp;
    if(isset($zbp->modulesbyfilename['tags'])){
	$zbp->modulesbyfilename['tags']->Content =Tblog_Get_tags();
	}	
}

(3)新的标签云内容的编写:

function Tblog_Get_tags(){
global $zbp;
$zbp->header .='<script src="'.$zbp->host.'zb_users/plugin/ttyb_newlypublished/js/3D-Tags.js" type="text/javascript"></script>';
$zbp->header .= "<link rel=\"stylesheet\" href=\"{$zbp->host}zb_users/plugin/ttyb_newlypublished/css/3dstyle.css\" type=\"text/css\" />\r\n";
$s = '';
$s.= '<div id="div1">';
	$i = $zbp->modulesbyfilename['tags']->MaxLi;
	if ($i == 0) $i = 25;
	$array = $zbp->GetTagList('*', '', array('tag_Count' => 'DESC'), $i, null);
	$array2 = array();
	foreach ($array as $tag) {
		$array2[$tag->ID] = $tag;
	}
	ksort($array2);
	$clor123=array("tblogred","tblogblack","tblogblue","tblogorange","tblogpink","tblogpurple");
	foreach ($array2 as $tag) {
		$s .= '<a href="' . $tag->Url . '"  class="'.$clor123[rand(0,5)].'" >' . $tag->Name . '(' . $tag->Count . ')</a>';
	}
$s.= '</div>';	
	return $s;
}

+-比较前面两个方法:

到这里已经全部介绍完两种方法,在这里来比较下两个方法:

相同点:

(1)都是可以实现模块内容的更新。

(2)显示数量等可以到模块管理面设置。

不同点:

(1)第一种方法:可以实现启用的时候必须要到模块管理里面管理重写提交下或者新建的tag的时候才能使用(相对tags来说,别的类似),第二种方法可以。

(2)第二种方法的动态内容的实现比较灵活。比如对于新建的模块内容是动态的,要实现动态的更换就会很麻烦。需要来回重写模块。那就费事了。(有点过了。要是介绍新建模块就好了。呵呵,以后介绍。)(可以忽略第二条。)




版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请通知我们,一经查实,本站将立刻删除。


客服