«

给EMLOG 6.0.0后台增加侧边栏的方法

时间:2019-9-21 11:30     作者:博客志     分类: emlog教程


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版本支持多个侧边栏的功能