zblogphp主题配置功能在后台首页添加选项卡
在我们制作网站主题的时候,多少都会有一些需要在后台进行配置的功能,这个时候就需要我们在网站后台添加一个主题配置的选项卡,效果如下图:
我们一般会用到两个文件,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(); ?>
到这一步,如果没有编写模版内容,那效果是这样的:
管理页面就出来了,但是有的时候管理页面的内容可能很多,如果把所有配置项都写在这里会很唱,显得不美观,这个时候我们就可以在这个页面内再添加选项卡,如下图效果:
方法一:
方法如下:在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>'; } }
选项卡下面内容
紧接上面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)?>把返回的链接显示出来。