首页 > 在线学习 > 网站教程

易优V1.4.6保留V1.4.5版本插件上传功能的方法【eyoucms】技巧

   大家好,eyoucms 易友1.4.6版本开会走进新的发展阶段,后续将所有插件或者模板都进行在线安装,不在下载了。每个企业发展总会有阶段性的政策,这点我们该支持。所以本贴发表,只做研究学习用途,非商业用途,请大家切勿用在商业、破坏别人 谋取利益为基础,不然所有后果自负!



1-2004201Z2514O.jpg


手动安装方法:


打开:

\application\admin\template\weapp

目录  index,htm  文件


在124行下面


                </div>

                {/foreach}

            {/empty}

        </div>

 添加如下代码:


        <div class="tDiv">

            <div class="tDiv2">

                {eq name="'Weapp@upload'|is_check_access" value="1"}

                <div class="fbutton">

                    {eq name='$isFounder' value='1'}

                    <form class="navbar-form form-inline" action="{:url('Weapp/upload')}" name="change_System" id="change_System" method="post" enctype="multipart/form-data">

                        <a id="a_weappfile" href="javascript:void(0);" class="a-upload"><input type="file" name="weappfile" id="weappfile" title="请选择…" accept="application/x-zip-compressed"><i class="fa fa-upload"></i>上传安装插件</a>

                    </form>

                    <input type="hidden" id="is_weapp_installanswer" value="{$is_weapp_installanswer|default='0'}" />

                    {else /}

                        <a onclick="layer.alert('请登录创始人账号进行操作!', {icon:4, title: false});" href="javascript:void(0);" class="a-upload"><i class="fa fa-upload"></i>上传安装插件</a>

                    {/eq}

                </div>

                {/eq}

            </div>

            <div style="clear:both"></div>

        </div>



然后在


</form>

<script>

    $(document).ready(function(){


        // 表格行点击选中切换

        $('#flexigrid > table>tbody >tr').click(function(){

            $(this).toggleClass('trSelected');

        });


        // 点击刷新数据

        $('.fa-refresh').click(function(){

            location.href = location.href;

        });

代码下面插入以下JS代码:


   {empty name="$is_set_weapp_answer"}

        get_setting();

        {/empty}


        $('#weappfile').change(function(){

            {empty name="$weapp_install_answer"}

            get_setting();

            return false;

            {/empty}


            var weappfile = $("#weappfile")[0].files[0];  //获取文件路径名

            var is_weapp_installanswer = $('#is_weapp_installanswer').val();

            if (0 == is_weapp_installanswer) {

                layer.prompt({

                        title: false,

                        closeBtn: 0,

                        id: 'input_installanswer',

                        success: function(layero, index){

                            $("#input_installanswer").prepend('<div style="margin-bottom: 15px;font-size: 14px;color: red;font-weight: bold;">{$weapp_install_asktitle}</div>');

                            $("#input_installanswer").find('input').attr('placeholder', '请录入问题的答案内容!');

                            $("#input_installanswer").find('input').bind('keydown', function(event){

                                if(event.keyCode ==13){

                                    upload($(this).val(), weappfile);

                                }

                            });

                        },

                        btn2: function(index, layero){

                            layer.close(index);

                            window.location.reload();

                            return false;

                        }

                    },

                    function(answer, index){

                        upload(answer, weappfile);

                    }

                );

            } else {

                upload(false, weappfile);

            }

        });


        function get_setting()

        {

            //iframe窗

            var iframes = layer.open({

                type: 2,

                title: '设置问题答案',

                fixed: true, //不固定

                shadeClose: false,

                shade: 0.3,

                area: ['500px', '350px'],

                content: "{:url('Weapp/setting')}",

                end: function(){

                    $.ajax({

                        type : 'get',

                        url : "{:url('Weapp/setting_close')}",

                        data : {_ajax:1},

                        dataType : 'json',

                        success : function(res){


                        }

                    })

                }

            });

        }


        function upload(answer, weappfile)

        {

            // var weappfile = document.getElementById('weappfile').files[0]; //获取文件路径名

            // var weappfile = $("#weappfile")[0].files[0];  //获取文件路径名


            var weappfileName = weappfile.name;

            var ext = weappfileName.substr(weappfileName.lastIndexOf('.')).toLowerCase();

            if ($.trim(weappfileName) == '' || ext != '.zip') {

                $('#weappfile').val('');

                showErrorMsg('请上传zip压缩包!');

                return false;

            }

     

            var formData = new FormData();

            formData.append('_ajax', 1);

            formData.append('weappfile', weappfile);

            if (false !== answer) {

                formData.append('answer', answer);

            }

          

            var loading = layer.msg('正在处理...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;请勿刷新页面', 

            {

                icon: 1,

                time: 3600000, //1小时后后自动关闭

                shade: [0.2] //0.1透明度的白色背景

            });

            //loading层

            var loading_1 = layer.load(3, {

                shade: [0.1,'#fff'] //0.1透明度的白色背景

            });


            $.ajax({

                url: "{:url('Weapp/upload')}",  //同目录下的php文件

                type: "POST",

                data: formData,

                dataType: "json", //声明成功使用json数据类型回调

                //如果传递的是FormData数据类型,那么下来的三个参数是必须的,否则会报错

                cache: false,  //默认是true,但是一般不做缓存

                processData: false, //用于对data参数进行序列化处理,这里必须false;如果是true,就会将FormData转换为String类型

                contentType: false,  //一些文件上传http协议的关系,自行百度,如果上传的有文件,那么只能设置为false

                success: function(res){  //请求成功后的回调函数

                    if (1 == res.code) {

                        layer.closeAll();

                        layer.msg(res.msg, {icon:1, time:1000}, function(){

                            window.location.reload();

                        });

                    } else {

                        $('#weappfile').val('');

                        layer.close(loading);

                        layer.close(loading_1);

                        layer.msg(res.msg, {icon:2, time:1500});

                    }

                },

                error: function(XMLHttpRequest, textStatus, errorThrown)

                {

                    layer.close(loading);

                    layer.close(loading_1);

                    layer.msg('安装失败', {icon:2, time:1500});

                }

            });

        }

1-200420191005464.png


记得别丢了符号哦!


然后打开配置文件:\application\admin\controller


打开:Weapp.php  文件


找到:大概在81行  插件列表  方面添加以下代码:


  /*

     * 设置插件问题的答案

     */

    public function setting()

    {

        if (!empty($this->admin_info['parent_id']) || -1 != $this->admin_info['role_id']) {

            $this->error('请登录创始人账号设置插件密保问题!');

        }


        $weapp_askanswer_list = config('global.weapp_askanswer_list');


        if (IS_POST) {

            $ask = input('post.ask/d');

            $answer = input('post.answer/s');

            $answer = trim($answer);


            if (empty($ask)) {

                $this->error('请选择安全问题!');

            } else if (empty($answer)) {

                $this->error('答案内容不能为空!');

            }


            $answer = func_encrypt($answer);

            $row = Db::name('admin')->where([

                    'admin_id'  => $this->admin_info['admin_id'],

                    'password'  => $answer,

                ])->count();

            if (!empty($row)) {

                $this->error('答案不能与登录密码一致!');

            }


            $data = [

                'weapp_install_ask'   => $ask,

                'weapp_install_answer'   => $answer,

                'weapp_askanswer_list' => json_encode($weapp_askanswer_list),

            ];

            tpSetting('weapp', $data, $this->main_lang);


            $this->admin_info['weapp_info']['firstInstallanswer'] = $answer;

            session('admin_info', $this->admin_info);


            $this->success('操作成功!', url('Weapp/index'));

        }


        $this->assign('weapp_askanswer_list', $weapp_askanswer_list);

        return $this->fetch();

    }


    /*

     * 关掉设置答案弹窗之后,下次登录没设置的话,才再次弹出

     */

    public function setting_close()

    {

        if (IS_AJAX) {

            $this->admin_info['weapp_info']['setting_close'] = 1;

            session('admin_info', $this->admin_info);


            $this->success('操作成功!');

        }

    }


然后:


找到这段代码:


  $assign_data['weapp_upgrade'] = $weapp_upgrade;

在    /*--end*/ 下面一行  添加以下代码:


  /*登录第一次输入插件安装密码之后,在退出之前安装所有插件都不再输入安装密码*/

        $weapp_install_asktitle = '';

        $is_weapp_installanswer = 0;

        $is_set_weapp_answer = 1; // 是否弹出设置问题答案

        $weapp_install_answer = tpSetting('weapp.weapp_install_answer', [], $this->main_lang);

        if (!empty($weapp_install_answer)) {

            $firstInstallanswer = empty($this->admin_info['weapp_info']['firstInstallanswer']) ? '' : $this->admin_info['weapp_info']['firstInstallanswer'];

            if (!empty($firstInstallanswer) && $firstInstallanswer == $weapp_install_answer) {

                $is_weapp_installanswer = 1;

            } else {

                $weapp_install_ask = tpSetting('weapp.weapp_install_ask', [], $this->main_lang);

                $weapp_askanswer_list = config('global.weapp_askanswer_list');

                $weapp_install_asktitle = $weapp_askanswer_list[$weapp_install_ask];

            }

        } else {

            if (empty($this->admin_info['weapp_info']['setting_close'])) {

                $is_set_weapp_answer = 0;

            }

        }

        $assign_data['is_weapp_installanswer'] = $is_weapp_installanswer;

        $assign_data['weapp_install_asktitle'] = $weapp_install_asktitle;

        $assign_data['is_set_weapp_answer'] = $is_set_weapp_answer;

        $assign_data['weapp_install_answer'] = $weapp_install_answer;

        /*end*/

          $isFounder = 0;

        if (empty($this->admin_info['parent_id']) && -1 == $this->admin_info['role_id']) {

            $isFounder = 1;

        }

        $assign_data['isFounder'] = $isFounder;

        /*--end*/



最后  再找到:


 $this->error('有漏洞,禁止此功能!');


改成


 // $this->error('有漏洞,禁止此功能!');


完工    如果实在不懂  就直接下载附件即可,,此方法可以手动可以长期用,如果有变动  小秋也会及时更新方法的。


至于附件的话 小秋也会更新 如果没有可以联系小秋!


1-200420192022326.png


1-200420192042H9.gif


如果自己修改失败,可以用懒人包。详见附件下载