[xoops-cvslog 1660] CVS update: xoops2jp/html/modules/user/class

アーカイブの一覧に戻る

Minahito minah****@users*****
2006年 1月 12日 (木) 01:44:00 JST


Index: xoops2jp/html/modules/user/class/users.php
diff -u /dev/null xoops2jp/html/modules/user/class/users.php:1.1.2.1
--- /dev/null	Thu Jan 12 01:44:00 2006
+++ xoops2jp/html/modules/user/class/users.php	Thu Jan 12 01:44:00 2006
@@ -0,0 +1,111 @@
+<?php
+
+class UserUsersObject extends XoopsSimpleObject
+{
+	var $Groups = array();
+	
+	function UserUsersObject()
+	{
+		$this->initVar('uid', XOBJ_DTYPE_INT, 0, true);
+		$this->initVar('name', XOBJ_DTYPE_STRING, '', false, 60);
+		$this->initVar('uname', XOBJ_DTYPE_STRING, '', true, 25);
+		$this->initVar('email', XOBJ_DTYPE_STRING, '', true, 60);
+		$this->initVar('url', XOBJ_DTYPE_STRING, '', false, 100);
+		$this->initVar('user_avatar', XOBJ_DTYPE_STRING, 'blank.gif', false, 30);
+		$this->initVar('user_regdate', XOBJ_DTYPE_INT, time(), true);
+		$this->initVar('user_icq', XOBJ_DTYPE_STRING, '', false, 15);
+		$this->initVar('user_from', XOBJ_DTYPE_STRING, '', false, 100);
+		$this->initVar('user_sig', XOBJ_DTYPE_TEXT, '', false);
+		$this->initVar('user_viewemail', XOBJ_DTYPE_BOOL, '0', false);
+		$this->initVar('actkey', XOBJ_DTYPE_STRING, '', false, 8);
+		$this->initVar('user_aim', XOBJ_DTYPE_STRING, '', false, 18);
+		$this->initVar('user_yim', XOBJ_DTYPE_STRING, '', false, 25);
+		$this->initVar('user_msnm', XOBJ_DTYPE_STRING, '', false, 100);
+		$this->initVar('pass', XOBJ_DTYPE_STRING, '', false, 32);
+		$this->initVar('posts', XOBJ_DTYPE_INT, '0', false);
+		$this->initVar('attachsig', XOBJ_DTYPE_BOOL, '0', false);
+		$this->initVar('rank', XOBJ_DTYPE_INT, '0', false);
+		$this->initVar('level', XOBJ_DTYPE_INT, '1', false);
+		$this->initVar('theme', XOBJ_DTYPE_STRING, '', false, 100);
+		$this->initVar('timezone_offset', XOBJ_DTYPE_FLOAT, '0.0', false);
+		$this->initVar('last_login', XOBJ_DTYPE_INT, '0', false);
+		$this->initVar('umode', XOBJ_DTYPE_STRING, '', false, 10);
+		$this->initVar('uorder', XOBJ_DTYPE_BOOL, '0', false);
+		$this->initVar('notify_method', XOBJ_DTYPE_BOOL, '1', false);
+		$this->initVar('notify_mode', XOBJ_DTYPE_BOOL, '0', false);
+		$this->initVar('user_occ', XOBJ_DTYPE_STRING, '', false, 100);
+		$this->initVar('bio', XOBJ_DTYPE_TEXT, '', false);
+		$this->initVar('user_intrest', XOBJ_DTYPE_STRING, '', false, 150);
+		$this->initVar('user_mailok', XOBJ_DTYPE_BOOL, '1', false);
+	}
+	
+	function getGroups()
+	{
+		return $this->Groups;
+	}
+}
+
+class UserUsersHandler extends XoopsObjectGenericHandler
+{
+	var $mTable = "users";
+	var $mPrimary = "uid";
+	var $mClass = "UserUsersObject";
+	
+	function &get($id)
+	{
+		$obj =& parent::get($id);
+		
+		if (is_object($obj)) {
+			$this->_loadGroups($obj);
+		}
+		
+		return $obj;
+	}
+	
+	function &getObjects($criteria = null, $param1 = false, $param2 = false, $param3 = false)
+	{
+		$objects =& parent::getObjects($criteria, $param1, $param2, $param3);
+
+		if (count($objects)) {
+			foreach (array_keys($objects) as $key) {
+				$this->_loadGroups($objects[$key]);
+			}
+		}
+	}
+	
+	function insert(&$user, $force = false)
+	{
+		if (parent::insert($user, $force)) {
+			$flag = true;
+
+			$handler =& xoops_getmodulehandler('groups_users_link');
+			$handler->deleteAll(new Criteria('uid', $user->get('uid')), $force);
+
+			foreach ($user->Groups as $gid) {
+				$link =& $handler->create();
+				
+				$link->set('groupid', $gid);
+				$link->set('uid', $user->get('uid'));
+				
+				$flag &= $handler->insert($link, $force);
+				
+				unset($link);
+			}
+			
+			return $flag;
+		}
+		
+		return false;
+	}
+	
+	function _loadGroups(&$user)
+	{
+		$handler =& xoops_getmodulehandler('groups_users_link');
+		$links =& $handler->getObjects(new Criteria('uid', $user->get('uid')));
+		foreach ($links as $link) {
+			$user->Groups[] = $link->get('groupid');
+		}
+	}
+}
+
+?>


xoops-cvslog メーリングリストの案内
アーカイブの一覧に戻る