zblogphp主题配置功能在后台首页添加选项卡

admin2023-01-181774

在我们制作网站主题的时候,多少都会有一些需要在后台进行配置的功能,这个时候就需要我们在网站后台添加一个主题配置的选项卡,效果如下图:

blob.png

我们一般会用到两个文件,include.php和main.php,制作方法如下:

include.php用来引用main.php文件:

<?php
                 // 主题名        调用下面定义的注册函数
RegisterPlugin("dipper_pcqxw","ActivePlugin_dipper_pcqxw"); //注册插件
function ActivePlugin_dipper_pcqxw(){
       //过滤器接口            顶部导航栏接口           要挂接的函数名
    Add_Filter_Plugin('Filter_Plugin_Admin_TopMenu','dipper_pcqxw_AddMenu'); //左侧导航是Filter_Plugin_Admin_LeftMenu
}
function dipper_pcqxw_AddMenu(&$m){
    global $zbp;
 //MakeTopMenu中的参数分别为 目标页面请求权限,链接文字,链接URL地址,链接窗口(默认为_self),构造的li标签id
    array_unshift($m, MakeTopMenu("root",'主题配置',$zbp->host . "zb_users/theme/dipper_pcqxw/main.php?act=config","","dipper_pcqxw"));
}

经过上面的代码,该【主题配置】的选项卡就已经出现了,但是点击进去后是空白,还需要main.php来实现内部样式。

main.php用来编写【主题配置】选项卡的界面:

<?php
//调用后台管理相关功能函数,以便在这个页面使用
require '../../../zb_system/function/c_system_base.php';
//调用系统初始化相关定义,如常量、数组等,以便在这个页面使用
require '../../../zb_system/function/c_system_admin.php';
$zbp->Load();
$action='root';
if (!$zbp->CheckRights($action)) {$zbp->ShowError(6);die();}
if (!$zbp->CheckPlugin('dipper_pcqxw')) {$zbp->ShowError(48);die();}
$blogtitle='主题配置';    //该选项卡显示的文字名称
$act = "";
if ($_GET['act']){
    $act = $_GET['act'] == "" ? 'config' : $_GET['act'];
}
//调用zblog后台的头部模版,内容基本为css和js的引用
require $blogpath . 'zb_system/admin/admin_header.php';
//调用zblog后台的公共位置模版
require $blogpath . 'zb_system/admin/admin_top.php';

/***模版内容开始**/

/***模版内容结束**/

    <script type="text/javascript">
        ActiveTopMenu("topmenu_dipper_pcqxw");//顶部导航切换时高亮
    </script>
<?php
require $blogpath . 'zb_system/admin/admin_footer.php';
RunTime();
?>

到这一步,如果没有编写模版内容,那效果是这样的:

QQ截图20180425191701.jpg

管理页面就出来了,但是有的时候管理页面的内容可能很多,如果把所有配置项都写在这里会很唱,显得不美观,这个时候我们就可以在这个页面内再添加选项卡,如下图效果:

QQ截图20180503225748.jpg

方法一:

方法如下:在main.php内编写

<div id="divMain">
    <div class="divHeader"><?php echo $blogtitle;?></div>//该处显示为上图「主题配置」
    <div class="SubMenu">
        //设置配置页面内部选项卡,dipper_pcqxw_SubMenu()在include.php内定义
        <?php dipper_pcqxw_SubMenu($act);?>
    </div>
</div>

在include.php内定义dipper_pcqxw_SubMenu()

function dipper_pcqxw_SubMenu($id){
   $arySubMenu = array(
      0 => array('图片设置', 'config', 'left', false),
      1 => array('seo设置', 'other', 'left', false),
      2 => array('联系方式', 'contact', 'left', false),
      3 => array('首页分类id设置', 'fenlei', 'left', false),
   );
   foreach($arySubMenu as $k => $v){
      echo '<a href="?act='.$v[1].'" '.($v[3]==true?'target="_blank"':'').'><span class="m-'.$v[2].' '.($id==$v[1]?'m-now':'').'">'.$v[0].'</span></a>';
   }
}

选项卡下面内容

QQ截图20180503230004.jpg

紧接上面main.php内容下面编写

<?php if ($act == 'config') { ?>
//当选项卡选中‘图片设置’时内容
<?php } if ($act == 'other') { ?>
//当选项卡选中‘seo设置’时内容
<?php } if ($act == 'contact') { ?>
//当选项卡选中‘联系方式’时内容
<?php } if ($act == 'fenlei') { ?>
//当选项卡选中‘首页分类id设置’时内容
<?php } ?>

方法二:

在include.php内定义D_Yoga_SubMenu()

动态定义,返回动态url,后面加参数。

function D_Yoga_SubMenu($id)
{
    $arySubMenu = array(
		0 => array('基本配置', 'xxmy1', 'left', false),
		1 => array('首页配置', 'xxmy2', 'left', false),
		2 => array('内页配置', 'xxmy3', 'left', false),
		3 => array('其他配置', 'xxmy4', 'left', false),
		4 => array('PC版广告', 'xxmy5', 'left', false),
		5 => array('移动广告', 'xxmy6', 'left', false),
		6 => array('设置说明', 'xxmy7', 'left', false),);
    foreach ($arySubMenu as $k => $v) {
        echo '<a href="?act='.$v[1].'" '.($v[3]==true?'target="_blank"':'').'><span class="m-'.$v[2].' '.($id==$v[1]?'m-now':'').'">'.$v[0].'</span></a>';
    }
}

静态定义,返回静态url,建议使用这种。

function D_Yoga_SubMenu($id)
{
    $arySubMenu = array(
		0 => array('基本配置', 'xxmy1', 'left', false),
		1 => array('首页配置', 'xxmy2', 'left', false),
		2 => array('内页配置', 'xxmy3', 'left', false),
		3 => array('其他配置', 'xxmy4', 'left', false),
		4 => array('PC版广告', 'xxmy5', 'left', false),
		5 => array('移动广告', 'xxmy6', 'left', false),
		6 => array('设置说明', 'xxmy7', 'left', false),);
    foreach ($arySubMenu as $k => $v) {
	echo '<a href="'.$v[1].'.php" '.($v[3]==true?'target="_blank"':'').'><span class="m-'.$v[2].' '.($id==$k?'m-now':'').'">'.$v[0].'</span></a>'; 
    }
}

显示方法如下:在main.php内编写

<div class="SubMenu">
    <?php D_Yoga_SubMenu($act)?>
</div>

通过<?php D_Yoga_SubMenu($act)?>把返回的链接显示出来。

网友评论