diff --git a/class/Api.php b/class/Api.php index db15feb..9001b55 100644 --- a/class/Api.php +++ b/class/Api.php @@ -206,7 +206,7 @@ class Api { /** * name:添加链接 */ - public function add_link($token,$fid,$title,$url,$description = '',$weight = 0,$property = 0,$url_standby = ''){ + public function add_link($token,$fid,$title,$url,$description = '',$weight = 0,$property = 0,$url_standby = '',$font_icon=''){ $this->auth($token); $fid = intval($fid); //检测链接是否合法 @@ -227,7 +227,8 @@ class Api { 'description' => htmlspecialchars($description,ENT_QUOTES), 'add_time' => time(), 'weight' => $weight, - 'property' => $property + 'property' => $property, + 'font_icon' => $font_icon ]; //插入数据库 $re = $this->db->insert('on_links',$data); @@ -533,6 +534,45 @@ class Api { } } } + + /** + * 图标上传 + * type:上传类型 + */ + public function uploadImages($token,$type){ + $this->auth($token); + if ($_FILES["file"]["error"] > 0) + { + $this->err_msg(-1015,'File upload failed!'); + } + else + { + //根据时间生成文件名 + $filename = $_FILES["file"]["name"]; + //获取文件后缀 + $suffix = explode('.',$filename); + $suffix = strtolower(end($suffix)); + + //临时文件位置 + $temp = $_FILES["file"]["tmp_name"]; + if( $suffix != 'ico' && $suffix != 'jpg' && $suffix != 'png' && $suffix != 'bmp' ) { + //删除临时文件 + unlink($filename); + $this->err_msg(-1014,'Unsupported file suffix name!'); + } + + $newfilename='upload/'.time().'.'.$suffix; + + if( copy($temp,$newfilename) ) { + $data = [ + 'code' => 0, + 'file_name' => $newfilename + ]; + exit(json_encode($data)); + } + } + } + /** * 导出HTML链接进行备份 */ @@ -570,7 +610,7 @@ class Api { /** * name:修改链接 */ - public function edit_link($token,$id,$fid,$title,$url,$description = '',$weight = 0,$property = 0,$url_standby = ''){ + public function edit_link($token,$id,$fid,$title,$url,$description = '',$weight = 0,$property = 0,$url_standby = '',$font_icon = ''){ $this->auth($token); $fid = intval($fid); //检测链接是否合法 @@ -596,7 +636,8 @@ class Api { 'description' => htmlspecialchars($description,ENT_QUOTES), 'up_time' => time(), 'weight' => $weight, - 'property' => $property + 'property' => $property, + 'font_icon' => $font_icon ]; //插入数据库 $re = $this->db->update('on_links',$data,[ 'id' => $id]); diff --git a/controller/api.php b/controller/api.php index e95020a..dccdd6f 100755 --- a/controller/api.php +++ b/controller/api.php @@ -107,8 +107,9 @@ function add_link($api){ $description = empty($_POST['description']) ? '' : $_POST['description']; $weight = empty($_POST['weight']) ? 0 : intval($_POST['weight']); $property = empty($_POST['property']) ? 0 : 1; - - $api->add_link($token,$fid,$title,$url,$description,$weight,$property,$url_standby); + $font_icon = empty($_POST['font_icon']) ? '' : $_POST['font_icon']; + + $api->add_link($token,$fid,$title,$url,$description,$weight,$property,$url_standby,$font_icon); } /** @@ -128,8 +129,9 @@ function edit_link($api){ $description = empty($_POST['description']) ? '' : $_POST['description']; $weight = empty($_POST['weight']) ? 0 : intval($_POST['weight']); $property = empty($_POST['property']) ? 0 : 1; - - $api->edit_link($token,$id,$fid,$title,$url,$description,$weight,$property,$url_standby); + $font_icon = empty($_POST['font_icon']) ? '' : $_POST['font_icon']; + + $api->edit_link($token,$id,$fid,$title,$url,$description,$weight,$property,$url_standby,$font_icon); } @@ -239,6 +241,14 @@ function upload($api){ $type = $_GET['type']; $api->upload($token,$type); } +// 上传图标 +function uploadImages($api){ + //获取token + $token = empty( $_POST['token'] ) ? $_GET['token'] : $_POST['token']; + //获取上传类型 + $type = $_GET['type']; + $api->uploadImages($token,$type); +} //书签导入 function imp_link($api) { //获取token diff --git a/controller/click.php b/controller/click.php index 523d6f3..687d77e 100755 --- a/controller/click.php +++ b/controller/click.php @@ -13,7 +13,7 @@ if(empty($id)) { } //查询链接信息 -$link = $db->get('on_links',['id','fid','url','url_standby','property','click','title','description'],[ +$link = $db->get('on_links',['id','fid','url','url_standby','property','click','title','description','font_icon'],[ 'id' => $id ]); diff --git a/db/onenav.simple.db3 b/db/onenav.simple.db3 index 43851ab..42b41aa 100644 Binary files a/db/onenav.simple.db3 and b/db/onenav.simple.db3 differ diff --git a/templates/admin/add_link.php b/templates/admin/add_link.php index e96e4fd..de6288b 100755 --- a/templates/admin/add_link.php +++ b/templates/admin/add_link.php @@ -30,6 +30,20 @@ +
+ +
+ +
+
+ +
+ +
+ +
+
+
diff --git a/templates/admin/edit_link.php b/templates/admin/edit_link.php index 3aa8509..5471eef 100755 --- a/templates/admin/edit_link.php +++ b/templates/admin/edit_link.php @@ -38,6 +38,20 @@
+
+ +
+ +
+
+ +
+ +
+ +
+
+
diff --git a/templates/admin/static/embed.js b/templates/admin/static/embed.js index 0cfaaff..9f5ac90 100755 --- a/templates/admin/static/embed.js +++ b/templates/admin/static/embed.js @@ -21,6 +21,9 @@ layui.use(['element','table','layer','form','upload','iconHhysFa'], function(){ ,page: true //开启分页 ,cols: [[ //表头 {field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'} + ,{field: 'font_icon', title: '图标', width:60, templet: function(d){ + return ''; + }} ,{field: 'name', title: '分类名称', width:160} ,{field: 'fname', title: '父级分类', width:160} ,{field: 'add_time', title: '添加时间', width:160, sort: true,templet:function(d){ @@ -84,6 +87,16 @@ layui.use(['element','table','layer','form','upload','iconHhysFa'], function(){ ,cols: [[ //表头 {type:'checkbox'} //开启复选框 ,{field: 'id', title: 'ID', width:80, sort: true} + ,{field: 'font_icon', title: '图标', width:60, templet:function(d){ + if(d.font_icon==null) + { + return ''; + } + else + { + return ''; + } + }} // ,{field: 'fid', title: '分类ID',sort:true, width:90} ,{field: 'category_name', title: '所属分类',sort:true,width:120} ,{field: 'url', title: 'URL',width:140,templet:function(d){ @@ -720,6 +733,27 @@ layui.use(['element','table','layer','form','upload','iconHhysFa'], function(){ } }); + upload.render({ + elem: '#iconUpload' //绑定元素 + ,url: 'index.php?c=api&method=uploadImages' //上传接口 + ,accept:'file' + ,exts: 'ico|jpg|png|bmp' + ,done: function(res){ + //console.log(res); + //上传完毕回调 + if( res.code == 0 ) { + $("#font_icon").val(res.file_name); + } + else if( res.code < 0) { + layer.msg(res.err_msg, {icon: 5}); + layer.close(); + } + + } + ,error: function(){ + //请求异常回调 + } + }); }); function get_link_info() { diff --git a/upload/default.png b/upload/default.png new file mode 100644 index 0000000..e5534a1 Binary files /dev/null and b/upload/default.png differ