给EMLOG 6.0.0后台增加侧边栏的方法
EMLOG 6.0.0正式版本发布以来,相对于EMLOG 5.3.1版本确实精简了不少的功能,但从细节上来说EMLOG6.0.0确实完善更符合现代化网站,现在就来为大家分享一下给EMLOG 6.0.0后台增加侧边栏的方法。
一、操作步骤
1、打开后台模板文件admin/views/widgets.php,找到如下代码
<form action="widgets.php?action=compages" method="post" class="form-inline">
<div class="panel-body">
<div class="panel-group adm_widget_box" id="sortable">
<?php
foreach ($widgets as $widget):
$flg = strpos($widget, 'custom_wg_') === 0 ? true : false; //是否为自定义组件
$title = ($flg && isset($custom_widget[$widget]['title'])) ? $custom_widget[$widget]['title'] : ''; //获取自定义组件标题
if ($flg && empty($title)) {
preg_match("/^custom_wg_(\d+)/", $widget, $matches);
$title = '未命名组件(' . $matches[1] . ')';
}
?>
<div class="panel panel-default active_widget" id="em_<?php echo $widget; ?>" style="cursor:move;">
<div class="panel-heading">
<input type="hidden" name="widgets[]" value="<?php echo $widget; ?>" />
<h4 class="panel-title">
<?php if ($flg) {
echo $title;
} else {
echo $widgetTitle[$widget];
} ?>
</h4>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<input type="hidden" name="wgnum" id="wgnum" value="<?php echo $wgNum; ?>" />
<div style="margin:20px 40px;"><input type="submit" value="保存组件排序" class="btn btn-primary" /> <a href="javascript:em_confirm(0, 'reset_widget', '<?php echo LoginAuth::genToken(); ?>');" class="btn btn-danger" >恢复出厂设置</a></div>
</form>
2、将上面的代码替换为下面的代码
<form action="widgets.php?action=compages" method="post" class="form-inline">
<div class="panel-body">
<div class="panel-group adm_widget_box" id="sortable">
<?php if($tpl_sidenum > 1):?>
<p><select id="wg_select"><?php for($i=1;$i<=$tpl_sidenum;$i++):if($i==$wgNum):?><option value="<?php echo $i;?>" selected>侧边栏<?php echo $i;?></option><?php else:?><option value="<?php echo $i;?>">侧边栏<?php echo $i;?></option><?php endif;endfor;?></select></p>
<?php endif;?>
<?php
foreach ($widgets as $widget):
$flg = strpos($widget, 'custom_wg_') === 0 ? true : false; //是否为自定义组件
$title = ($flg && isset($custom_widget[$widget]['title'])) ? $custom_widget[$widget]['title'] : ''; //获取自定义组件标题
if($flg && empty($title)){
preg_match("/^custom_wg_(\d+)/", $widget, $matches);
$title = '未命名组件('.$matches[1].')';
}?>
<?php if($widgetTitle[$widget]){?>
<div class="panel panel-default active_widget" id="em_<?php echo $widget; ?>" style="cursor:move;">
<div class="panel-heading">
<input type="hidden" name="widgets[]" value="<?php echo $widget; ?>" />
<h4 class="panel-title"><?php if($flg){echo $title;}else{echo $widgetTitle[$widget];}?></h4>
</div>
</div>
<?php }endforeach; ?>
</div>
</div>
<input type="hidden" name="wgnum" id="wgnum" value="<?php echo $wgNum; ?>" />
<div style="margin:20px 40px;"><input type="submit" value="保存组件排序" class="btn btn-primary" /> <a href="javascript:em_confirm(0, 'reset_widget', '<?php echo LoginAuth::genToken(); ?>');" rel="nofollow" rel="nofollow" class="btn btn-danger" >恢复出厂设置</a></div>
</form>
3、打开支持多侧边栏的模板,即可测试后台自定义设置多侧边栏的功能
二、原理解析
通过PHP判断和条件限制,以修改后台模板文件的方式实现EMLOG6.0.0版本支持多个侧边栏的功能