dever 4 years ago
parent
commit
48f19edb72
5 changed files with 60 additions and 2 deletions
  1. 21 0
      database/avatar.php
  2. 25 0
      database/user.php
  3. 6 2
      lib/Base.php
  4. 3 0
      lib/Manage.php
  5. 5 0
      src/Api.php

+ 21 - 0
database/avatar.php

@@ -1,5 +1,13 @@
 <?php
 
+$sex = array
+(
+    1 => '男',
+    2 => '女',
+    3 => '中性',
+    4 => '全部',
+);
+
 return array
 (
     # 表名
@@ -22,6 +30,18 @@ return array
             'search'    => 'order,fulltext',
             'list'      => true,
         ),
+
+        'sex'       => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '头像性别',
+            'default'   => '4',
+            'desc'      => '头像性别',
+            'match'     => 'is_numeric',
+            'option'    => $sex,
+            'update'    => 'radio',
+            //'list'        => true,
+        ),
         
         //search_exist_avatar=yes
         'avatar'        => array
@@ -73,6 +93,7 @@ return array
             # 匹配的正则或函数 选填项
             'option' => array
             (
+                'sex' => array('yes', 'in'),
                 'state' => 1,
             ),
             'type' => 'one',

+ 25 - 0
database/user.php

@@ -46,6 +46,19 @@ $system = function()
 	return $array;
 };
 
+$avatar = function()
+{
+	$array = array
+	(
+		-1 => array('id' => -1, 'name' => '不选择'),
+	);
+	$info = Dever::db('passport/avatar')->state();
+	if ($info) {
+		$array += $info;
+	}
+	return $array;
+};
+
 $profession = function()
 {
 	$array = array();
@@ -270,6 +283,18 @@ return array
 			'callback'	=> 'sha1',
 		),
 		
+		'avatar_id'		=> array
+		(
+			'type' 		=> 'int-11',
+			'name' 		=> '默认头像',
+			'default' 	=> '1',
+			'desc' 		=> '默认头像',
+			'match' 	=> 'is_numeric',
+			'option' 	=> $avatar,
+			'update'	=> 'radio',
+			//'list'		=> true,
+		),
+
 		//search_exist_avatar=yes
 		'avatar'		=> array
 		(

+ 6 - 2
lib/Base.php

@@ -71,9 +71,13 @@ class Base
         }
 
         # 获取默认头像
-        $avatar = Dever::db('passport/avatar')->rand();
+        $where = array();
+        if (isset($user['sex']) && $user['sex']) {
+            $where['sex'] = $user['sex'] . ',4';
+        }
+        $avatar = Dever::db('passport/avatar')->rand($where);
         if ($avatar) {
-            $user['avatar'] = $avatar['avatar'];
+            $user['avatar_id'] = $avatar['id'];
         }
 
         $uid = Dever::db('passport/user')->insert($user);

+ 3 - 0
lib/Manage.php

@@ -41,6 +41,9 @@ class Manage
 
         if ($user['avatar']) {
             $table['头像'] = '<img src="'.$user['avatar'].'" width="150" />';
+        } elseif ($user['avatar_id'] > 0) {
+            $avatar = Dever::db('passport/avatar')->one($user['avatar_id']);
+            $table['头像'] = '<img src="'.$avatar['avatar'].'" width="150" />';
         }
 
         if ($user['area']) {

+ 5 - 0
src/Api.php

@@ -30,6 +30,11 @@ class Api
             } else {
                 $info['birthday'] = date('Y-m-d', $info['birthday']);
             }
+
+            if (!$info['avatar'] && $info['avatar_id'] > 0) {
+                $avatar = Dever::db('passport/avatar')->one($info['avatar_id']);
+                $info['avatar'] = $avatar['avatar'];
+            }
         }
         
         return $info;