1: <?php
2: 3: 4: 5:
6:
7: if (!defined('XOOPS_ROOT_PATH')) exit();
8:
9: require_once XOOPS_MODULE_PATH . "/user/class/AbstractEditAction.class.php";
10: require_once XOOPS_MODULE_PATH . "/user/forms/AvatarSelectForm.class.php";
11:
12: 13: 14: 15: 16: 17: 18:
19: class User_AvatarSelectAction extends User_AbstractEditAction
20: {
21: var $mOldAvatar = null;
22:
23: function prepare(&$controller, &$xoopsUser, &$moduleConfig)
24: {
25: parent::prepare($controller, $xoopsUser, $moduleConfig);
26:
27: $handler =& xoops_getmodulehandler('avatar', 'user');
28: $criteria =new Criteria('avatar_file', $xoopsUser->get('user_avatar'));
29: $avatarArr =& $handler->getObjects($criteria);
30: if (count($avatarArr) > 0) {
31: $this->mOldAvatar =& $avatarArr[0];
32: }
33: }
34:
35: function _getId()
36: {
37: return isset($_REQUEST['uid']) ? intval(xoops_getrequest('uid')) : 0;
38: }
39:
40: function &_getHandler()
41: {
42: $handler =& xoops_getmodulehandler('users', 'user');
43: return $handler;
44: }
45:
46: function _setupActionForm()
47: {
48: $this->mActionForm =new User_AvatarSelectForm();
49: $this->mActionForm->prepare();
50: }
51:
52: 53: 54: 55:
56: function isEnableCreate()
57: {
58: return false;
59: }
60:
61: 62: 63: 64:
65: function isSecure()
66: {
67: return true;
68: }
69:
70: 71: 72: 73: 74: 75:
76: function hasPermission(&$controller, &$xoopsUser, $moduleConfig)
77: {
78: if (!is_object($this->mObject)) {
79: return false;
80: }
81:
82: if ($controller->mRoot->mContext->mUser->isInRole('Module.user.Admin')) {
83: return true;
84: }
85: elseif ($this->mObject->get('uid') == $xoopsUser->get('uid')) {
86: return ($this->mObject->get('posts') >= $this->_mMinPost);
87: }
88:
89: return false;
90: }
91:
92: function _doExecute()
93: {
94: if ($this->mObjectHandler->insert($this->mObject)) {
95: $avatarHandler =& xoops_getmodulehandler('avatar', 'user');
96:
97:
98:
99:
100: if ($this->mOldAvatar != null && $this->mOldAvatar->get('avatar_type') == 'C') {
101: $avatarHandler->delete($this->mOldAvatar);
102: }
103:
104:
105:
106:
107: $linkHandler =& xoops_getmodulehandler('avatar_user_link', 'user');
108: $linkHandler->deleteAllByUser($this->mObject);
109:
110:
111:
112:
113: $criteria =new Criteria('avatar_file', $this->mObject->get('user_avatar'));
114: $avatarArr =& $avatarHandler->getObjects($criteria);
115: if (is_array($avatarArr) && is_object($avatarArr[0])) {
116: $link =& $linkHandler->create();
117: $link->set('avatar_id', $avatarArr[0]->get('avatar_id'));
118: $link->set('user_id', $this->mObject->get('uid'));
119: $linkHandler->insert($link);
120: }
121:
122: return true;
123: }
124: }
125:
126: 127: 128:
129: function getDefaultView(&$controller, &$xoopsUser)
130: {
131: $controller->executeForward(XOOPS_URL . "/edituser.php?op=avatarform&uid=" . $this->mObject->get('uid'));
132: }
133:
134: function executeViewSuccess(&$controller,&$xoopsUser,&$renderSystem)
135: {
136: $controller->executeForward(XOOPS_URL . "/userinfo.php?op=avatarform&uid=" . $this->mActionForm->get('uid'));
137: }
138:
139: function executeViewError(&$controller,&$xoopsUser,&$renderSystem)
140: {
141: $controller->executeRedirect(XOOPS_URL . "/userinfo.php?op=avatarform&uid=" . $this->mActionForm->get('uid'), 1, _MD_USER_ERROR_DBUPDATE_FAILED);
142: }
143: }
144:
145: ?>
146: